Problems compiling (mktplinkfw.c)

Hi,
i try to compile mktplinkfw.c with this workflow after cloning the source from git:

sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make prereq
cd tools/firmware-utils/src/
gcc -Os mktplinkfw.c md5.c -o mktplinkfw.

i get this errors and cant help myself... any hints?

pi@raspberrypi:~/rpi_openwrt/openwrt/tools/firmware-utils/src $ gcc -Os mktplinkfw.c md5.c -o mktplinkfw
/tmp/cceuXxGD.o: In function `fill_header':
mktplinkfw.c:(.text+0x35c): undefined reference to `bswap_32'
mktplinkfw.c:(.text+0x398): undefined reference to `bswap_32'
mktplinkfw.c:(.text+0x3d8): undefined reference to `get_md5'
/tmp/cceuXxGD.o: In function `main':
mktplinkfw.c:(.text.startup+0x2a0): undefined reference to `get_file_stat'
mktplinkfw.c:(.text.startup+0x414): undefined reference to `find_layout'
mktplinkfw.c:(.text.startup+0x4d0): undefined reference to `get_file_stat'
mktplinkfw.c:(.text.startup+0x534): undefined reference to `get_file_stat'
mktplinkfw.c:(.text.startup+0x6f4): undefined reference to `build_fw'
mktplinkfw.c:(.text.startup+0x738): undefined reference to `read_to_buf'
mktplinkfw.c:(.text.startup+0x74c): undefined reference to `inspect_fw_pstr'
mktplinkfw.c:(.text.startup+0x758): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x79c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x820): undefined reference to `get_md5'
mktplinkfw.c:(.text.startup+0x84c): undefined reference to `inspect_fw_pmd5sum'
mktplinkfw.c:(.text.startup+0x85c): undefined reference to `inspect_fw_pmd5sum'
mktplinkfw.c:(.text.startup+0x870): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x880): undefined reference to `inspect_fw_pmd5sum'
mktplinkfw.c:(.text.startup+0x894): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x8a8): undefined reference to `inspect_fw_pstr'
mktplinkfw.c:(.text.startup+0x8b4): undefined reference to `inspect_fw_pstr'
mktplinkfw.c:(.text.startup+0x8c4): undefined reference to `inspect_fw_phex'
mktplinkfw.c:(.text.startup+0x8d4): undefined reference to `inspect_fw_phex'
mktplinkfw.c:(.text.startup+0x8e4): undefined reference to `inspect_fw_phex'
mktplinkfw.c:(.text.startup+0x8fc): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x90c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x91c): undefined reference to `inspect_fw_phex'
mktplinkfw.c:(.text.startup+0x92c): undefined reference to `inspect_fw_phex'
mktplinkfw.c:(.text.startup+0x93c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x94c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x95c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x96c): undefined reference to `inspect_fw_phexdec'
mktplinkfw.c:(.text.startup+0x97c): undefined reference to `inspect_fw_phexdec'
collect2: error: ld returned 1 exit status

This utility is compiled:

$(call cc,mktplinkfw mktplinkfw-lib md5, -Wall -fgnu89-inline)

So you need mktplinkfw-lib.[ch] files too.

They are in the same directory... do i have to set any path-variables?

pi@raspberrypi:~/rpi_openwrt/openwrt/tools/firmware-utils/src $ ls mk*
mkbrncmdline.c  mkcasfw.c    mkdapimg.c       mkdlinkfw-lib.h  mkfwimage.c        mkmerakifw-old.c  mkrasimage.c   mktitanimg.c   mktplinkfw-lib.c  mkzcfw.c
mkbrnimg.c      mkchkimg.c   mkdhpimg.c       mkdniimg.c       mkheader_gemtek.c  mkmylofw.c        mkrtn56uimg.c  mktitanimg.h   mktplinkfw-lib.h  mkzynfw.c
mkbuffaloimg.c  mkcsysimg.c  mkdlinkfw.c      mkedimaximg.c    mkhilinkfw.c       mkplanexfw.c      mksenaofw.c    mktplinkfw2.c  mkwrggimg.c
mkcameofw.c     mkdapimg2.c  mkdlinkfw-lib.c  mkfwimage2.c     mkmerakifw.c       mkporayfw.c       mksercommfw.c  mktplinkfw.c   mkwrgimg.c

Instead of

simply run

gcc -Os mktplinkfw.c mktplinkfw-lib.c md5.c -o mktplinkfw

Thank you! I still had some problems with endian.h until i (funky workarround) included the endian.h file content directly into mktplinkfw.c

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.