使用SFML(macOS)手动链接并编译C++程序



我正在尝试用SFML创建小型C++程序,我不想使用Xcode模板。我正在使用VSCode。

我下载了适用于Mac的SFML,并将标题和dylib复制到我的项目目录中,如下所示:

  • include/<-从include目录复制的内容(带有所有头的SFML目录(

  • lib/<-从lib文件夹复制的内容(所有dylib文件(

main.cpp看起来像这样:

#include "include/SFML/Graphics.hpp"
int main()
{
return EXIT_SUCCESS;
}

我用来编译(成功地(的命令:g++ main.cpp -o main -I include -L lib -l sfml-graphics -l sfml-window -l sfml-system

当运行应用程序时,我得到以下错误:

dyld: Library not loaded: @rpath/libsfml-graphics.2.5.dylib
Referenced from: /Users/mikal/code/cpp/sfml-box2d/./main
Reason: image not found
zsh: abort      ./main

我需要通过添加以下链接器选项来告诉链接器在运行时在哪里查找动态库:

-Wl,-rpath ./lib

更多信息请点击此处:https://gcc.gnu.org/legacy-ml/gcc-help/2005-12/msg00017.html

因此,编译hello SFML代码的完整命令是:g++ main.cpp -o main -I include -L lib -l sfml-system -l sfml-window -l sfml-graphics -l sfml-audio -l sfml-network -Wl,-rpath ./lib

最新更新