有没有对automake生成makefile熟悉的,请教一下。
openwrt吧
全部回复
仅看楼主
level 1
chengduguoke 楼主
平台:openwrt
描述:加入snmpd源代码,编译时出现如下错误。不使用交叉编译时可以编译通过。
详细描述:
错误如下:
/home/hbg/openwrt/A3_307/staging_dir/host/bin/sed -f sedscript ./EXAMPLE.conf.def > EXAMPLE.conf
making all in /home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4/snmplib
make[5]: Entering directory '/home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4/snmplib'
/bin/sh ../libtool --mode=compile mips-openwrt-linux-uclibc-gcc -I/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/hbg/openwrt/A3_307/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/hbg/openwrt/A3_307/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include -fno-strict-aliasing -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -Ulinux -Dlinux=linux -c -o snmp_client.lo snmp_client.c
mkdir .libs
mips-openwrt-linux-uclibc-gcc -I/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/hbg/openwrt/A3_307/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/hbg/openwrt/A3_307/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include -fno-strict-aliasing -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -Ulinux -Dlinux=linux -c snmp_client.c -fPIC -DPIC -o .libs/snmp_client.o
snmp_client.c:42:38: fatal error: net-snmp/net-snmp-config.h: No such file or directory
#include <net-snmp/net-snmp-config.h>
^
compilation terminated.
Makefile:94: recipe for target 'snmp_client.lo' failed
make[5]: *** [snmp_client.lo] Error 1
make[5]: Leaving directory '/home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4/snmplib'
Makefile:510: recipe for target 'subdirs' failed
make[4]: *** [subdirs] Error 1
make[4]: Leaving directory '/home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4'
Makefile:60: recipe for target '/home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4/.built' failed
make[3]: *** [/home/hbg/openwrt/A3_307/build_dir/target-mips_34kc_uClibc-0.9.33.2/SNMP-5.4.4/.built] Error 2
make[3]: Leaving directory '/home/hbg/openwrt/A3_307/package/netsnmp'
package/Makefile:175: recipe for target 'package/netsnmp/compile' failed
make[2]: *** [package/netsnmp/compile] Error 2
make[2]: Leaving directory '/home/hbg/openwrt/A3_307'
package/Makefile:172: recipe for target '/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/home/hbg/openwrt/A3_307/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/hbg/openwrt/A3_307'
/home/hbg/openwrt/A3_307/include/toplevel.mk:171: recipe for target 'world' failed
按照字面意思是“找不到文件net-snmp/net-snmp-config.h”,查看makefile中:
INSTALLHEADERS=\
net-snmp-includes.h \
config_api.h \
mib_api.h \
output_api.h \
pdu_api.h \
session_api.h \
snmpv3_api.h \
varbind_api.h \
types.h \
utilities.h \
version.h \
definitions.h
确实是没有包含相应的头文件(所有的头文件在同一个目录下)。但是这个makefile是自动生成的,人工修改后,再次编译会覆盖。
搜素了一下makefile的自动生成功能。
还试过另外一种方式,将此头文件复制一份重新命名(在相同目录下),包含头文件的源文件snmp-client.c中包含的文件修改为重命名后的文件。依然是找不到重命名后的头文件。
请各位大神帮忙看看!
谢谢!!
2015年09月10日 08点09分 1
1