C++ OSXDylib指的是可执行文件本身
我不确定我问这个问题的方式是否正确,但我最近尝试制作一个使用mysql/c++的应用程序 我这样编译程序:C++ OSXDylib指的是可执行文件本身,c++,mysql,macos,linker,dylib,C++,Mysql,Macos,Linker,Dylib,我不确定我问这个问题的方式是否正确,但我最近尝试制作一个使用mysql/c++的应用程序 我这样编译程序: g++ -o test main.cpp -I./include -L./lib -lmysqlclient -lmysqlcppconn 当我运行程序时,它会做出以下响应: dyld: Library not loaded: /home/myname/Desktop/path/to/exe Referenced from: /Users/myname/Desktop/path/to
g++ -o test main.cpp -I./include -L./lib -lmysqlclient -lmysqlcppconn
当我运行程序时,它会做出以下响应:
dyld: Library not loaded: /home/myname/Desktop/path/to/exe
Referenced from: /Users/myname/Desktop/path/to/./test
Reason: image not found
Trace/BPT trap: 5
谁能看出我做错了什么
提前谢谢,如果需要更多关于这个问题的信息,请告诉我。我只能猜测您的mysql库不在标准位置。
如果要将库保留在非标准位置,应将环境变量
DYLD\u LIBRARY\u PATH
设置为指向动态链接库。在linux/most unices下,这将是
LD\u LIBRARY\u PATH
比如:export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}:./lib";
./yourExecHere
我们应该做到这一点 我尝试过这样做,但我仍然得到了“库未加载:/home/myname/Desktop/path/to/exe”我曾经错误地导出了DYLD_library_路径以包含此路径(该路径不存在),但现在似乎没有路径可以容纳它。很抱歉,我无法确定可能的错误,因此我将所有.cpp文件移到了一个新的文件夹结构并重写了Makefile。我现在都工作了,谢谢!