我正在尝试从个人计算机中移植链接到几个共享库code.cpp
和libA.so
的简单程序libB.so
(运行最新的Arch Linux安装)在装有Ubuntu 16.04 LTS的计算机上。编译库工作正常,但是编译undefined reference
时遇到很多code.cpp
错误。
我怀疑这是由于libA.so
链接到libB.so
造成的,而libA.so
和libB.so
在Ubuntu 16.04上都可以正常编译,而奇怪的是{{尽管有编译标志libA.so
,但1 {}仍未与libB.so
链接,这在生成二进制文件时又导致未定义的引用。另一方面,在Arch Linux上,-lB
确实与libA.so
链接,所以libB.so
告诉我。
我起初虽然问题可能与GCC版本不匹配,但是即使在Ubuntu 16.04上安装并使用GCC 8之后,问题仍然存在。
答案 0 :(得分:1)