我使用指令编译 SFML2,使其在 mac 上与 C++11 一起工作,方法是在 cmake 中添加标志。
每当我尝试使用 Eclipse 作为我的 IDE 的库时,我得到未知符号,它使用的命令如下:
g++-4.7 -L/usr/local/lib -std=c++11 -o "Breakout" ./main.o -lsfml-window -lsfml-system -lsfml-graphics
它吐出的错误是:
Undefined symbols for architecture x86_64:
"sf::RenderWindow::RenderWindow(sf::VideoMode, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, sf::ContextSettings const&)", referenced from:
_main in main.o
使用此代码:
#include <SFML/Graphics.hpp>
int main () {
sf::RenderWindow window(sf::VideoMode(800,600), "window");
return 1;
}
我认为问题可能是 SFML 是用 Clang 编译的,而我使用的是 GCC 4.7。我无法使用 GCC 编译 SFML,因为它抱怨 Objective C 和 Cocoa 的东西。如果我可以避免它,我不想为这个项目改用 Clang,因为我喜欢 Eclipse 作为 IDE,但 Clang 支持是废话。
编辑:我差点忘了,Linux 上一切正常。我有一个正在移植的项目,我正在尝试制作一个突破性克隆来测试。我已经有的项目很大,我想尽可能避免工作。