SFML 2.1体系结构x86_64错误的未定义符号

问题描述 投票:4回答:1

我最近安装了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放在我的Frameworks目录(/ 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

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

但是,我不断收到相同的错误。我一直在用Google搜索该错误,但是我一直得到的是人们在使用Xcode而不是终端的问题。任何帮助将不胜感激!

c++ sfml
1个回答
4
投票

我终于知道了!首先,正如Joachim Pileborg所指出的那样,我需要安装mac的SFML的clang版本,因为我正在乔装书中指出,我使用g ++伪装了clang ++。接下来,我不得不再次按照说明进行操作,以使用Linux(http://www.sfml-dev.org/tutorials/2.0/start-linux.php)设置SFML。

但是,蛋糕上的糖霜是我读到这个问题的时候:

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

它编译并成功运行!!!我现在很高兴!

© www.soinside.com 2019 - 2024. All rights reserved.