与.so在G 中的链接导致未定义的参考
Linking with .so in g++ results in undefined references
保持此简单...假设我有以下内容:a.lib,libb.so(使用a.lib)和c.exe(使用libb.so)。注意:这是Linux,而不是Windows。我只是在使用.exe传达二进制类型/目的。
我只是试图编译并链接c.exe形成命令提示符,因为它只是一个简单的测试程序。这是我正在使用的行:
g++ -I../include C.cpp -o C.exe -L../lib -lB
结果是许多未定义的提及在A.lib中可以找到的事物。没有错误引用从libb.so。
导出的任何内容如果我将libb.So复制到同一目录并使用此命令:
g++ -I../include C.cpp -o C.exe -lB
结果是构建c.exe,并且可以在没有错误的情况下运行。
一旦libb.So构建,我不需要用来构建它的Libs。尽管如此,我认为我会尝试一些尝试作为最后的尝试。我将a.lib复制到与libb.so相同的LIB目录中,并再次尝试了原始构建命令。结果是相同的。
所有想法都赞赏。
samvershavchik让我走上答案的道路。我首先尝试了此命令:
g++ -I../include C.cpp -o C.exe -Wl,-R,../lib -lB
结果是一个干净的构建,但我运行C.Exe时缺少符号的另一个错误。
我将命令修改为以下内容:
g++ -I../include C.cpp -o C.exe -Wl,-R,--just-symbols=../lib/libB.so -lB
这导致了干净的构建和运行C.EXE而不会出错的能力。
相关文章:
- GTest EXPECT_EQ给出未定义的错误参考
- 在VSCode中编译C++给了我一个未定义的参考
- Armadillo正在为共享的lapack库获取未定义的参考
- 我对C++程序有一个未定义的参考,不知道如何处理它
- 使用Arduino IDE的构造函数的未定义参考错误
- 在C++中使用 CImg 的未定义参考错误
- gtest的未定义参考
- 未定义参考 cv::鱼眼::校准
- WEBRTC的未定义参考
- 如何编译ZBAR示例?(未定义参考..)
- 针对C 库链接时的未定义参考
- 命名空间外部变量的未定义参考/多重定义,C 结构问题
- 简单QT程序中的未定义参考
- 主要makefile中的未定义参考
- C 标题中的外部变量的未定义参考
- 对[class::function]的未定义引用/对[class]的typeinfo的未定义参考
- icu 54-未定义参考
- 信号上的QT未定义参考编译错误
- boost 1.58未定义参考
- QT未定义参考错误(Qextserialport)