C++ 如何使用交叉链接器而不是本机链接器
我正试图使用OpenWRT提供的工具链为MIPS体系结构交叉编译一个包。我在制作过程中遇到以下错误:C++ 如何使用交叉链接器而不是本机链接器,c++,c,linker,makefile,C++,C,Linker,Makefile,我正试图使用OpenWRT提供的工具链为MIPS体系结构交叉编译一个包。我在制作过程中遇到以下错误: /usr/bin/ld: skipping incompatible /home/user/package/zlib/zlib-1.2.8/libz.so when searching for -lz 在本例中,zlib已经为MIPS交叉编译,但make使用“/usr/bin/ld”而不是“mipsel openwrt linux ld”。我已经尝试过了。/使用--with-ld选项进行配置,
/usr/bin/ld: skipping incompatible /home/user/package/zlib/zlib-1.2.8/libz.so when searching for -lz
在本例中,zlib已经为MIPS交叉编译,但make使用“/usr/bin/ld”而不是“mipsel openwrt linux ld”。我已经尝试过了。/使用--with-ld选项进行配置,但它说“--with-ld”是未知选项。您是否检查了下一页 将主机和构建传递给包的构建系统以触发交叉编译 对于GNU配置,使用--build=architecture unknown linux GNU--host=architecture openwrt linux uclibc(例如:./configure--build=x86_64-unknown-linux-GNU–host=mips openwrt linux uclibc) 运行./config.guess以获取--build=选项 检查输出并确保“检查我们是否正在交叉编译…是”为“是” 对于GNU make,重写CC和LD环境变量(如果使用GNU配置,通常不需要) 使CC=architecture openwrt linux uclibc gcc LD=architecture openwrt linux uclibc LD
你检查了下一页吗 将主机和构建传递给包的构建系统以触发交叉编译 对于GNU配置,使用--build=architecture unknown linux GNU--host=architecture openwrt linux uclibc(例如:./configure--build=x86_64-unknown-linux-GNU–host=mips openwrt linux uclibc) 运行./config.guess以获取--build=选项 检查输出并确保“检查我们是否正在交叉编译…是”为“是” 对于GNU make,重写CC和LD环境变量(如果使用GNU配置,通常不需要) 使CC=architecture openwrt linux uclibc gcc LD=architecture openwrt linux uclibc LD
我知道这是两年前的事。我在为OpenWrt构建外部包时也遇到了同样的问题 对于最新的OpenWrt,您至少设置了两个环境变量:
路径添加到\u OpenWrt/staging\u dir/toolchain-*/bin
路径到路径
环境变量路径设置为\u OpenWrt/staging\u dir
设置为staging\u dir
环境变量AC\u CANONICAL\u HOST
(在configure.AC中查找)和/configure--HOST=architecture openwrt linux
编译一个基于autoconf的项目
您可能需要设置更多的环境变量,例如PKG\u CONFIG\u PATH
,PKG\u CONFIG\u LIBDIR
,以使PKG CONFIG
正常工作
我编写了一个bash脚本,为您完成所有工作:
.
在配置之前,您可以使用
source sdkenv.sh
激活脚本。我知道这已经两年了。我在为OpenWrt构建外部包时也遇到了同样的问题
对于最新的OpenWrt,您至少设置了两个环境变量:
路径添加到\u OpenWrt/staging\u dir/toolchain-*/bin
路径到路径
环境变量路径设置为\u OpenWrt/staging\u dir
设置为staging\u dir
环境变量AC\u CANONICAL\u HOST
(在configure.AC中查找)和/configure--HOST=architecture openwrt linux
编译一个基于autoconf的项目
您可能需要设置更多的环境变量,例如PKG\u CONFIG\u PATH
,PKG\u CONFIG\u LIBDIR
,以使PKG CONFIG
正常工作
我编写了一个bash脚本,为您完成所有工作:
.
在配置之前,您可以使用
source sdkenv.sh
激活脚本。感谢您的回复。我尝试了你提到的步骤,但也没用。我猜./configure脚本出现了一些问题,无法设置LD变量。最后一行如何make CC=architecture openwrt linux uclibc gcc LD=architecture openwrt linux uclibc LD
?你犯了什么样的错误?尝试过但没有成功。找到了一些用于此架构的预构建包,因此结束了我的斗争。感谢您的回复。我尝试了你提到的步骤,但也没用。我猜./configure脚本出现了一些问题,无法设置LD变量。最后一行如何make CC=architecture openwrt linux uclibc gcc LD=architecture openwrt linux uclibc LD
?你犯了什么样的错误?尝试过但没有成功。找到了一些用于此体系结构的预构建包,因此结束了我的斗争。