2013-07-27 3 views
2

Я использую Eclipse Juno на OSX Mountain Lion и хотел использовать std :: regex, который, как я знаю, является только функцией C++ 11. Когда я #include <regex>, IDE заявляет, что его не существует. Может быть, хорошо отметить, что заголовок regex.h присутствует/usr/include /, хотя я не вижу в нем никакой конкретной библиотеки в/usr/lib/или/usr/local/lib /, хотя я не знаю, если это Соответствующий. Это просто побочный проект для развлечения, поэтому я не использую настраиваемую систему сборки, а просто обычный проект на C++ в Eclipse.Почему Eclipse не может найти регулярное выражение на Mac OSX?

Я не очень переживаю, когда речь заходит о модификации процесса сборки (кроме настроек, включая пути, библиотеки и т. Д.), Особенно когда IDE, например Eclipse, управляет им, но я полагаю, что компилятор и компоновщик (GCC G ++) не настроен для C++ 11, хотя я пробовал различные рекомендации от SO и форумов Eclipse, например, добавление -std = C++ 11, но я просто продолжаю видеть вывод о том, что они непризнанные аргументы.

Я уверен, что кто-то там справился с этой проблемой. Может ли кто-нибудь помочь? Заранее спасибо.

+0

Помог ли мой ответ, у меня была такая же проблема на некоторое время – aaronman

ответ

2

На макинтош вы должны использовать флаг:
-stdlib=libc++
и даже тогда, я считаю, как правило, только лязг достаточно обновляется (так что используйте лязг вместо GCC), если вы только что с помощью обновления Xcode. Вы также должны убедиться, что ваши инструменты командной строки Xcode обновлены, потому что я бы предположил, что используется затмение компилятора.

+0

Привет, я прошу прощения за то, что вы не проверили свой ответ раньше. Я не являюсь постоянным пользователем XCode, но это то, что я изначально использовал для установки gcc для создания других проектов. Я проверил и инструменты командной строки также обновлены. Что касается использования clang вместо gcc, я не уверен, как это изменить в Eclipse (редактор инструментальной цепочки не показывает clang). Поскольку clang является gcc-совместимым, я был в предположении, что Eclipse считает, что он использует gcc, а не clang. На данный момент у меня возникла потребность в регулярном выражении с использованием подстрок. Но в будущем это было бы полезно. –

+0

@JoeyCarson просто помню, что реализация регулярного выражения gcc даже не работает, если у вас есть обновление, поэтому, если вы не можете понять, как использовать clang, регулярные выражения не будут работать – aaronman

+0

Я заметил, что моя установка gcc в/usr/bin действительно является gcc 4.2, что согласно документации не поддерживает cpp 11 или даже экспериментальную поддержку. Я установил gcc 4.7 с использованием варева, но теперь, похоже, у меня есть две установки gcc. –