2014-11-27 3 views
5

Я хочу использовать libC++ вместе с clang на Arch Linux в проекте CMake. Я установил LibC++ и добавлены следующие строки CMakeLists.txt как сказал на LLVM site в Linux разделе «Использование LibC++ в программах»:Связывание libC++ с проектом CMake в Linux

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++") 
set(CMAKE_EXE_LINKER_FLAGS "-lc++abi") 

Я попытался просто «++ ABI» в флагов компоновщика, но Бесполезный Помогите. Мне нужна помощь в выяснении того, что я должен написать в моем CMakeLists.txt.

+1

сообщение об ошибке, что вы получаете? –

+0

@RichardHodges CMake не дает сообщений об ошибках, но когда я пытаюсь использовать std :: string, например, clang дает мне следующее сообщение: 'implicit instantiation undefined template 'std :: __ l :: basic_string , СТД :: __ 1 :: распределитель > ' ' – Ostrea

+0

выглядит как вы не' #include ' –

ответ

8

Я бы добавил это в качестве комментария, но мне не хватает репутации.

Не забудьте установить компилятор лязг ++:

set(CMAKE_CXX_COMPILER "clang++") 

Кроме того, продуть CMake сгенерированные файлы (удалить папку CMakeFiles и CMakeCache.txt).

В зависимости от вашей системы, она также может помочь установить

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi") 
+0

Это помогли, thx много – Ostrea

Смежные вопросы