2017-07-22 20 views
0

CLionのWebサイトでは「libC++」をサポートしていますが、libC++を使用するようにCLlionを設定する方法に関する情報はありません。私はUbuntu 16を使い、libC++ソースをダウンロードしてビルドしました。だから私はこの特定のバージョンを使用したい。ここでカスタムlibC++とclangでCLion IDEをセットアップするには?

は、私がこれまで試したものです:

だから私は今のlibC++のバイナリを持っています。その後、私は単純なhello worldプロジェクトを作成し、自分のカスタムlibC++を使うようにCMakeLists.txtを変更しました。しかし、プロジェクトを実行しようとするとエラーが発生します。

/home/shitals/CLionProjects/JsonTest/cmake-build-debug/JsonTest: error while loading shared libraries: libc++.so.1: cannot open shared object file: No such file or directory 

私のカスタムlibC++を強制的に使用するプロジェクトです。

cmake_minimum_required(VERSION 3.8) 
project(JsonTest) 

set(CMAKE_CXX_STANDARD 14) 

#libcxx which we will use with specific version of clang 
SET(LIBCXX_INC_PATH /home/shitals/mylibc++/include/c++/v1) 
SET(LIBCXX_LIB_PATH /home/shitals/mylibc++/lib) 

set(CMAKE_C_COMPILER clang-3.9) 
set(CMAKE_CXX_COMPILER clang++-3.9) 

set(CMAKE_CXX_FLAGS "\ 
       -std=c++14 -ggdb -Wall -Wextra -Wstrict-aliasing -Wunreachable-code -Wcast-qual -Wctor-dtor-privacy \ 
       -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default \ 
       -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wstrict-overflow=5 -Wswitch-default -Wundef \ 
       -Wno-variadic-macros -Wno-parentheses -Wno-unused-function -Wno-unused -Wno-documentation -fdiagnostics-show-option -ferror-limit=10 \ 
       -pthread ${CMAKE_CXX_FLAGS}") 

set(CMAKE_CXX_FLAGS "\ 
        -nostdinc++ -isystem ${LIBCXX_INC_PATH} \ 
        -D__CLANG__ ${CMAKE_CXX_FLAGS}") 

set(CMAKE_EXE_LINKER_FLAGS "\ 
        ${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++ -lc++abi -lm -lc -lgcc_s -lgcc -ldl \ 
        -L ${LIBCXX_LIB_PATH}") 

set(SOURCE_FILES main.cpp) 
add_executable(JsonTest ${SOURCE_FILES}) 

コンパイルされたlibC++バイナリにはlibC++。so.1ファイルがあります。

答えて

0

[OK]を...ので、プロジェクトのルートでCMakeLists.txtの下には、動作するようには思えん:

cmake_minimum_required(VERSION 3.8) 
project(JsonTest) 

set(CMAKE_CXX_STANDARD 14) 

#libcxx which we will use with specific version of clang 
SET(LIBCXX_INC_PATH /home/shitals/GitHubSrc/AirSim/llvm-build/output/include/c++/v1) 
SET(LIBCXX_LIB_PATH /home/shitals/GitHubSrc/AirSim/llvm-build/output/lib) 

set(CMAKE_C_COMPILER clang-3.9) 
set(CMAKE_CXX_COMPILER clang++-3.9) 

set(CMAKE_CXX_FLAGS "\ 
       -std=c++14 -ggdb -Wall -Wextra -Wstrict-aliasing -Wunreachable-code -Wcast-qual -Wctor-dtor-privacy \ 
       -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default \ 
       -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wstrict-overflow=5 -Wswitch-default -Wundef \ 
       -Wno-variadic-macros -Wno-parentheses -Wno-unused-function -Wno-unused -Wno-documentation -fdiagnostics-show-option -ferror-limit=10 \ 
       -pthread ${CMAKE_CXX_FLAGS}") 

set(CMAKE_CXX_FLAGS "\ 
        -nostdinc++ -isystem ${LIBCXX_INC_PATH} \ 
        -D__CLANG__ ${CMAKE_CXX_FLAGS}") 

set(CMAKE_EXE_LINKER_FLAGS "\ 
        ${CMAKE_EXE_LINKER_FLAGS} -v -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc -ldl \ 
        -L ${LIBCXX_LIB_PATH}") 

LINK_DIRECTORIES(${LIBCXX_LIB_PATH}) 

set(SOURCE_FILES main.cpp) 
add_executable(JsonTest ${SOURCE_FILES}) 
TARGET_LINK_LIBRARIES(JsonTest c++ c++abi) 
関連する問題