C++ 交叉编译:指向库的链接仅在目标系统上可用
有没有办法链接到一个共享库,该库只在目标系统上可用,而在用于交叉编译的系统上不可用?我想交叉编译另一个与目标系统上的共享库链接的共享库 在我的源代码目录中有一个包含带有函数声明的头文件的include目录。我通过C++ 交叉编译:指向库的链接仅在目标系统上可用,c++,linker,cross-compiling,C++,Linker,Cross Compiling,有没有办法链接到一个共享库,该库只在目标系统上可用,而在用于交叉编译的系统上不可用?我想交叉编译另一个与目标系统上的共享库链接的共享库 在我的源代码目录中有一个包含带有函数声明的头文件的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++ -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。在交叉编译后的链接中,您不需要本机库,您需要来自目标系统的库。将它复制到您的构建系统。是的,我想知道是否有一种方法可以在开发系统上完全不使用库的情况下进行链接。但我认为情况并非如此。