gpt4 book ai didi

c++ - 无法通过单击运行程序,而我可以从终端运行

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:05 25 4
gpt4 key购买 nike

我正在尝试学习如何在 C++ 程序中构建和使用动态库。一切都很好,当我从终端启动我的程序时运行良好(我在 mac OS X El Capitan 上)。令人惊讶的是,当我尝试通过单击可执行文件来启动它时,情况并非如此。我得到一个 dyld: Library not loaded: library.so, Reason: image not found 错误。

我所有的文件都在同一个目录中。我用命令构建它们:

g++ -c -fPIC A.cpp
g++ -c -fPIC B.cpp
g++ -shared -fPIC A.o B.o -o library.so
g++ main.cpp library.so -o Program

预先感谢您的帮助。

我尝试了以下解决方案:

  • LD_LIBRARY_PATHDYLD_LIBRARY_PATH 中添加路径
  • 更改库扩展名:library.solibrary.dylib
  • 添加一个 rpath g++ main.cpp library.so -Wl,-rpath,. -o Programg++ main.cpp library.so -Wl,-rpath,$HOME/my_dir -o Program

最佳答案

您可能需要给出明确的 rpath (作为绝对路径,而不是相对路径)在编译时(例如使用 g++ -Wall -Wl,-rpath,$HOME/yourdir main.cpp library.so -o Program),或设置一些 DYLD_LIBRARY_PATH,参见 this .您可能需要一个 .dylib 后缀,而不是一个 .so 后缀。

(我已经没有MacOSX了,所以我忘记了细节)

关于c++ - 无法通过单击运行程序,而我可以从终端运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com