Есть ли способ настроить WaF для сборки программы C ++ в Mac OS? - PullRequest
3 голосов
/ 20 апреля 2011

У меня просто проблема, что все работает хорошо на моем Ubuntu.Тем не менее, я хочу, чтобы все работало на моем Mac, случается что-то плохое.он показывает следующие ошибки

cc1plus: error: unrecognized command line option "-std=c++0x"

Я новичок в Mac, я установил xcode 4.Я предполагаю, что должен быть c ++ 0x, но мне интересно, как я могу настроить его с помощью waf.

Спасибо большое !!

Ответы [ 3 ]

2 голосов
/ 29 мая 2012

Поскольку Xcode поставляется с Clang на Mac, вы можете получить поддержку c ++ 0x , если настроить waf на использование Clang .

В вашем wscript добавьте для настройки:

def configure( conf ):
    ...
    conf.env.CXXFLAGS = [ '-std=c++0x', '-stdlib=libc++' ]
    conf.env.LINKFLAGS = [ '-std=c++0x', '-stdlib=libc++' ]
    ....

Затем выполните waf как:

CXX=clang++ waf configure
CXX=clang++ waf build
2 голосов
/ 20 апреля 2011

Я предполагаю, что вы используете GCC, поставляемый с Xcode.Это будет GCC 4.2.1, довольно старая версия, которая не будет обновлена ​​Apple в обозримом будущем.

У вас есть два основных варианта:

  • XCode поставляет Clang / LLVM помимо GCC, поэтому вы можете использовать Clang / LLVM.Эта опция -std=c++0x распознается Clang / LLVM, но C ++ 0x поддерживается не так полно, как в последних версиях GCC. Проект LLVM сохраняет страницу со списком их текущего статуса поддержки C ++ 0x .

  • Используйте более новую версию GCC.Вы можете скомпилировать его локально или установить с помощью менеджеров пакетов с открытым исходным кодом, доступных в Mac OS X: MacPorts, Fink, Homebrew.Я действительно не знаю, могут ли и какие версии GCC их собрать, поэтому сначала сверьтесь с ними.

1 голос
/ 20 апреля 2011

На Mac вы не ошибетесь с clang .Вы должны будете собрать компилятор самостоятельно (используя, например, gcc-4.2, который у вас уже есть).Имеет -std = c ++ 0x.Поддержка этого не завершена, но она постоянно растет.На Mac вы также можете посмотреть libc ++ для поддержки C ++ 0x (в сочетании с clang).

...