gcc - undefined reference 错误链接共享对象

标签 gcc g++ centos shared

我有共享库,它依赖于一些静态库,其中包括zlib等。当我使用与 g++ (cent os 6.3) 相关的静态库,它编译得很好。现在,当我尝试在测试项目中使用我的共享库时,我遇到了很多 Unresolved 错误。我做错了什么?

g++ -L/usr/local/lib -L/home/de.../workspace/libtest/Debug -o "mytest" ./src/mytest.o -ltest

/home/de.../workspace/libtest/Debug/libtest.so: undefined reference to `BZ2_bzCompressEnd'

collect2: ld returned 1 exit status

最佳答案

错误使您看起来还需要链接到 bzip2:

g++ -L/usr/local/lib -L/home/de.../workspace/libtest/Debug -o "mytest" ./src/mytest.o -ltest -lbz2

将静态库链接到共享库时确实需要小心,但您会看到此错误,因为您需要链接其余库。

关于gcc - undefined reference 错误链接共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334719/

相关文章:

c++ - 为什么 MSVC (Visual C++) 需要单独的 dllimport 和 dllexport 属性而 gcc 不需要?

c++ - 在 GCC 中,是否可以从其他 header 中包含预编译 header ?

g++ - 强制 g++ 为未使用的函数生成代码

jenkins - java.nio.file.AccessDeniedException :/home/username/Desktop

macos - _SCDynamicStoreCopyProxies 上的错误未找到符号

c - 这种对 int64_t 的处理是 GCC 和 Clang 错误吗?

c - 使用 GCC 的 -fms-extensions 是个坏主意吗?

g++ - 在 qmake 命令行中定义一个字符串

php - 无法从 php 连接到远程 Mysql 服务器

nginx - CentOS 上的 PHP 和模块 API 不匹配