【问题标题】:g++ shared library only links in current directoryg ++共享库仅链接当前目录
【发布时间】:2014-11-06 15:26:55
【问题描述】:

我正在尝试使用我在另一个目录中构建的库来编译 C++ 程序(在 Linux 和 OS X 上):

$ g++ -I./include -L./lib src/main.cpp -lale -o proj

“ale”只是我正在使用的库(./lib/libale.so 中的 libale.so)

它编译所有东西,但是当我运行它时,我收到以下错误:

./proj: error while loading shared libraries: libale.so: cannot open shared object file: No such file or directory

但是,如果我将 libale.so 放入与可执行文件相同的目录中(或添加符号链接),它确实有效。我正在寻找一些解决方案,一个建议是设置LD_LIBRARY_PATH。但是,我宁愿在编译期间直接链接路径。有没有办法做到这一点?

【问题讨论】:

    标签: c++ linker g++ shared-libraries clang


    【解决方案1】:

    我找到的答案是添加以下标志:

    -Wl,-rpath=./lib
    

    但是,这在 OS X 上不起作用。我最终只为 OS X 版本使用了符号链接,但这不是最佳解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      相关资源
      最近更新 更多