2013-03-20 2 views
0

Я скомпилировал SFML2, используя инструкции, чтобы заставить его работать с C++ 11 на mac, добавив флаг в cmake.SFML дает мне неизвестные символы на mac

Всякий раз, когда я пытаюсь библиотеки, используя 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. Я не могу скомпилировать SFML с помощью GCC, потому что он жалуется на объекты Objective C и Cocoa. Если я могу избежать этого, я не хочу переходить к Clang для этого проекта, так как мне нравится Eclipse для IDE, но поддержка Clang - это дерьмо.

EDIT: Я почти забыл, все отлично работает в Linux. У меня есть проект, который я переношу, и я пытался сделать клон для прорыва, чтобы проверить его. Проект, который у меня уже есть, довольно большой, и я хочу избежать как можно больше работы.

ответ

0

Я выяснил решение. Если я использую предварительно скомпилированные libs с сайта SFML, он компилируется отлично. Мой вопрос сейчас, почему? Они действуют одинаково, и я полагаю, что они были скомпилированы с использованием тех же методов.

0

Для компиляции SFML с поддержкой C++ 11 вам нужны два инструмента (как описано в учебнике по началу работы): clang с libC++.

LibC++ и libstdC++ имеют две различные реализации S (T) L. Это проблема.

К сожалению, нет волшебного решения; вам придется либо использовать SFML без C++ 11, либо получить SFML, скомпилированный с поддержкой g ++ 4.7 и C++ 11. Или вы можете использовать другую среду IDE, конечно.

Обратите внимание, что SFML официально не поддерживает официальные компиляторы. Однако вы можете попробовать и поделиться своим опытом на официальном форуме.