架构x86_64错误的未定义符号
SFML 2.1 Undefined symbols for architecture x86_64 error
我最近安装了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链接错误
在接受的答案中,这个人说如果我想使用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
然后,我把sml -audio.framework、sml -window.framework、sml -graphics.framework、sml -network.framework和sml -system.framework放到我的Frameworks目录(/Library/Frameworks)中。
最后,我试着用以下方式编译我的程序:
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
g++ window.cpp -framework sfml-graphics -framework sfml-window -framework sfml-system
但是,我一直得到相同的错误。我继续在谷歌上搜索这个错误,但我一直得到的是人们使用Xcode而不是终端的问题。任何帮助将非常感激!
我终于弄明白了!首先,正如Joachim Pileborg指出的,我需要为mac安装clang版本的SFML,因为我使用g++来编译,这是伪装的clang++, Joachim Pileborg也指出了这一点。接下来,我必须再次浏览使用Linux设置SFML的说明(http://www.sfml-dev.org/tutorials/2.0/start-linux.php)。
然而,锦上添花的是当我读到这个问题时:
OSX GCC如何指定sfml库源?
…这个问题:
在XCode中构建时出现FreeType错误
…这让我想到:也许我应该尝试移动我的freetype.framework文件夹(可以在extlibs目录中找到)到我的/Library/Frameworks目录。一旦我这样做并使用
进行编译g++ window.cpp -framework sfml-graphics -framework sfml-window -framework sfml-system
编译并运行成功!我现在很开心!
- vscode g++链路故障:体系结构x86_64的未定义符号
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- C++ 中 dlsym 的未定义符号
- 仅在 MacOS 上析构函数的未定义符号
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 体系结构x86_64的未定义符号:链接器错误
- C++ std::vector<int> 体系结构的未定义符号 x86_64:
- 生成文件:体系结构x86_64的未定义符号
- libc++abi未定义符号:_ZTVN10__cxxabif120__si-class_type_infoE
- Xcode"体系结构x86_64的未定义符号"
- 体系结构x86_64的未定义符号:找不到原因
- SWIG链接器:未定义符号:_ZN2cv8fastFreeEPv(cv::fastFree(void*))
- 如何修复架构x86_64的未定义符号,Boost Asio 1.58
- 在Qt5上去静态库:架构的未定义符号x86_64:
- 体系结构x86_64的未定义符号:c++/ h 文件和 cpp 文件
- 监视 SDK 下的未定义符号"__Unwind_SjLj_Unregister"
- 使用 Boost/Python 的未定义符号 - 复杂
- 建筑x86_64的未定义符号:"vtkDebugLeaksManager::vtkDebugLeaksManager()",引用自: