有没有办法链接到只在目标系统上可用的共享库,而不是用于交叉编译的系统?我想交叉编译另一个链接到目标系统上的共享库的共享库。
在我的源代码目录中有一个include目录,其中包含带有函数声明的头文件。我通过
编译源代码arm-linux-gnueabi-g++ -Wall -fPIC -I include/ -c mysource1.cpp
arm-linux-gnueabi-g++ -Wall -fPIC -I include/ -c mysource2.cpp
此状态下没有错误或警告。下一个命令
arm-linux-gnueabi-g++ -shared -fPIC -rdynamic mysource1.o mysource2.o -L /usr/lib/libtargetsys_shlib.so -Wl,-z,defs -o another_shared_lib.so
报告以下错误:
mysource2.o: In function `my_func_2':
mysource2.cpp:(.text+0xe): undefined reference to `share_lib_func'
shared_lib_func存在于目标系统共享库中。
答案 0 :(得分:1)
在交叉编译后的链接中,您不需要 native 库,您需要来自目标系统的库。将其复制到您的构建系统。