c++ - 编译对象后链接共享库时出错

标签 c++ gcc shared-libraries

我编译了目标文件,然后尝试编译可执行文件,但失败了,说在“theLib”中存在未定义的函数引用。

g++ -I./theLib/src -c -o obj/main.o src/main.cpp

(目前有效)

g++ -L./theLib -Wl,-rpath=./theLib obj/main.o -ltheLib -o exe

(错误:libtheLib.so:未定义对“some_function”的引用)

我到处检查答案,他们都只是建议将 -ltheLib 部分移到依赖项之后(我这样做了)。但它仍然不起作用。真正让我感到困惑的是,对于不同目录中的示例,同一个库编译得很好。

库在 C 中。尝试编译 C++ 会搞砸吗?还是我只是遗漏了一些先编译 .o 文件的东西?

最佳答案

事实证明,该库依赖于我必须在自己的源代码中实现和提供的功能。我从来不知道有些图书馆会这样做,但吸取了教训。一旦我实现了导致错误的函数并添加了这些源文件,它就起作用了。

关于c++ - 编译对象后链接共享库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855018/

相关文章:

c++ - 简单的 netbeans C++ 项目无法编译

c++ - 用非常量变量声明数组大小

linux - 带有两个共享库的 dlopen,导出符号

c++ - 有没有办法在 MinGW 中控制所有三个子应用程序管道,即 STDOUT、STDIN 和 STDERR?

c++ - 海湾合作委员会 assembly "+t"

c++ - C/C++ 与 GCC : Statically add resource files to executable/library

linux - 共享库无法编译,*.a 文件丢失

c++ - 在不同 View 的 QListWidget 中上下移动项目

c++ - 将多个元素以多个偏移量插入到 vector 中

c++ - Q : Generate argument list at compile time