Как я могу использовать GSL с C ++ 11 и новым STL?

Я настраиваю новый проект C ++ (в Xcode 4.6) и очень хотел бы использовать возможности нового стандарта C ++ 11 (лямбда-выражения, auto и т. Д.). Я пытаюсь (статически) связать Научную библиотеку Гну (GSL) с этим проектом, используя ответ Дарсона на этот предыдущий вопрос Однако в его ответе предлагается изменить компилятор на LLVM GCC 4.2, который не поддерживает новые функции C ++ 11.

Когда я переключаюсь на компилятор Apple LLVM 4.2 по умолчанию, сборка завершается неудачно, и я получаю длинный список ошибок, которые XCode возвращает к семантическим проблемам (необъявленные идентификаторы, имена неизвестных типов и т. Д.) В заголовках нового STL «libc ++».

Итак, мой вопрос: Кто-нибудь нашел способ использовать GSL в новом стандарте C ++ 11? Это не обязательно должно быть в Xcode, мне удобно использовать любую (UNIX) IDE или среду сборки.

2

Решение

Я смог решить свой собственный вопрос, и я подумал, что поделюсь им с теми, кто тоже может с этим бороться.

Как я и подозревал, проблема возникла из-за того, что моя установка GSL (из macports) была построена на «старом» STL (libstdc ++). Следовательно, мое решение состояло в том, чтобы перекомпилировать GSL против «нового» STL (libc ++). Это легко сделать, распаковав исходники и запустив

./configure CC=clang CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++"

Я также добавил --disable-shared построить только статическую библиотеку, и --prefix=... установить путь сборки. Тогда все, что осталось, это бежать make а также make install,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]