gpt4 book ai didi

c++ - SFML 2.1 架构 x86_64 错误的 undefined symbol

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:11 24 4
gpt4 key购买 nike

我最近安装了 SFML 2.1 并尝试从终端编译和运行,而不是 Xcode,他们网站上的示例程序 http://www.sfml-dev.org/tutorials/2.0/start-linux.php .

   Path to where I installed SFML:
/Users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal

但是,我不断收到以下错误:

   Undefined symbols for architecture x86_64:
"sf::String::String(char const*, std::__1::locale const&)", referenced from:
_main in window-48cb4a.o

谷歌搜索后,我遇到了这个问题:SFML 2.1 RenderWindow linking error

在接受的答案中,那个人说如果我想使用 g++,我必须下载“GCC”版本。因此,我继续下载 GCC - 通用 32+64 位(OS X 10.5+)版本,然后按照在 linux 上安装和编译 SFML 的说明进行操作,因为 mac(http://www.sfml-dev.org/tutorials/2.0/start-linux.php)没有通过执行以下操作:

因为我在非标准位置安装了 SFML,所以我告诉我的编译器在哪里可以找到头文件,如下所示:

   -I /Users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal/Frameworks/SFML.framework/Headers

我还必须告诉我的编译器在哪里可以找到 SMFL 库:

  -L /Users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal/lib

我还需要告诉库加载程序从哪里找到 SFML 库:

  export LD_LIBRARY_PATH=/Users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal/lib

然后,我将 sfml-audio.framework、sfml-window.framework、sfml-graphics.framework、sfml-network.framework 和 sfml-system.framework 放在我的框架目录 (/Library/Frameworks) 中。

最后,我尝试通过以下方式编译我的程序:

  1. g++ window.cpp -I/Users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal/Frameworks/SFML.framework/Headers/SFML -L/users/.../Desktop/C++_Code/SMFL/SFML-2.1-osx-gcc-universal/lib -framework sfml-graphics -framework sfml-window -framework sfml-system/p>

  2. g++ window.cpp -framework sfml-graphics -framework sfml-window -framework sfml-system

但是,我不断收到同样的错误。我继续用谷歌搜索错误,但我得到的只是人们使用 Xcode 而不是终端的问题。任何帮助将不胜感激!

最佳答案

我终于明白了!首先,正如 Joachim Pileborg 指出的那样,我需要为 mac 安装 SFML 的 clang 版本,因为我使用 g++ 进行编译,这是变相的 clang++,正如 Joachim Pileborg 也指出的那样。接下来,我必须再次阅读有关在 Linux 中设置 SFML 的说明 (http://www.sfml-dev.org/tutorials/2.0/start-linux.php)。

然而,锦上添花的是当我读到这个问题时:

OSX GCC how to specify sfml library source?

...还有这个问题:

FreeType error when building in XCode

...这让我开始思考:也许我应该尝试将我的 freetype.framework 文件夹(可以在 extlibs 目录中找到)移动到我的/Library/Frameworks 目录中。一旦我这样做并使用

编译
g++ window.cpp -framework sfml-graphics -framework sfml-window -framework sfml-system

编译运行成功!!!我现在很开心!

关于c++ - SFML 2.1 架构 x86_64 错误的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436761/

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