2017-10-06 39 views
0

我需要使用Cilk的加註釋在我的C++程序,是這樣的:的Cilk加上使用JetBrains的克利翁IDE(C++)註釋

#inlcude <cilk/cilk.h> 

cilk_spawn myFunction(); 
cilk_sync; 

我使用JetBrains的克利翁IDE和我得到的錯誤宏替換後出錯:無法解析類型'_Cilk_spawn'。我想知道是否有任何解決方案。 當然,從我的終端直接使用g ++,我只需添加選項-fcilkplus,但在這種情況下,我不知道如何解決這個問題。 這裏是(更新)我的CMakeLists.txt文件的內容:

cmake_minimum_required(VERSION 3.8) 
project(C__Threads) 

set(CMAKE_CXX_STANDARD 11) 
set(SOURCE_FILES main.cpp) 
set(CMAKE_CXX_FLAGS "-fcilkplus") // I've also put this one because otherwise the building process fails. 

add_executable(C__Threads ${SOURCE_FILES}) 
target_compile_options(C__Threads PUBLIC -fcilkplus) 
set(CMAKE_VERBOSE_MAKEFILE ON) 

這是構建輸出(更新):

/home/leo/clion-2017.2.3/bin/cmake/bin/cmake --build /home/leo/CLionProjects/C++Threads/cmake-build-debug --target C__Threads -- -j 4 
/home/leo/clion-2017.2.3/bin/cmake/bin/cmake -H/home/leo/CLionProjects/C++Threads -B/home/leo/CLionProjects/C++Threads/cmake-build-debug --check-build-system CMakeFiles/Makefile.cmake 0 
/usr/bin/make -f CMakeFiles/Makefile2 C__Threads 
make[1]: Entering directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
/home/leo/clion-2017.2.3/bin/cmake/bin/cmake -H/home/leo/CLionProjects/C++Threads -B/home/leo/CLionProjects/C++Threads/cmake-build-debug --check-build-system CMakeFiles/Makefile.cmake 0 
/home/leo/clion-2017.2.3/bin/cmake/bin/cmake -E cmake_progress_start /home/leo/CLionProjects/C++Threads/cmake-build-debug/CMakeFiles 2 
/usr/bin/make -f CMakeFiles/Makefile2 CMakeFiles/C__Threads.dir/all 
make[2]: Entering directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
/usr/bin/make -f CMakeFiles/C__Threads.dir/build.make CMakeFiles/C__Threads.dir/depend 
make[3]: Entering directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
cd /home/leo/CLionProjects/C++Threads/cmake-build-debug && /home/leo/clion-2017.2.3/bin/cmake/bin/cmake -E cmake_depends "Unix Makefiles" /home/leo/CLionProjects/C++Threads /home/leo/CLionProjects/C++Threads /home/leo/CLionProjects/C++Threads/cmake-build-debug /home/leo/CLionProjects/C++Threads/cmake-build-debug /home/leo/CLionProjects/C++Threads/cmake-build-debug/CMakeFiles/C__Threads.dir/DependInfo.cmake --color= 
make[3]: Leaving directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
/usr/bin/make -f CMakeFiles/C__Threads.dir/build.make CMakeFiles/C__Threads.dir/build 
make[3]: Entering directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
[ 50%] Building CXX object CMakeFiles/C__Threads.dir/main.cpp.o 
/usr/bin/c++ -fcilkplus -g -fcilkplus -std=gnu++11 -o CMakeFiles/C__Threads.dir/main.cpp.o -c /home/leo/CLionProjects/C++Threads/main.cpp 
[100%] Linking CXX executable C__Threads 
/home/leo/clion-2017.2.3/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/C__Threads.dir/link.txt --verbose=1 
/usr/bin/c++ -fcilkplus -g CMakeFiles/C__Threads.dir/main.cpp.o -o C__Threads 
make[3]: Leaving directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
[100%] Built target C__Threads 
make[2]: Leaving directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
/home/leo/clion-2017.2.3/bin/cmake/bin/cmake -E cmake_progress_start /home/leo/CLionProjects/C++Threads/cmake-build-debug/CMakeFiles 0 
make[1]: Leaving directory '/home/leo/CLionProjects/C++Threads/cmake-build-debug' 
+0

Clion爲其項目使用[CMake](https://cmake.org/)。我建議你閱讀它的[文檔](https://cmake.org/cmake/help/latest/index.html)。 –

+0

問題不在於CMake。我想我設法通過了-fcilkplus選項,但IDE不會編譯(cilk_spawn關鍵字下仍然有紅色的波浪線)。 – leqo

+0

如果您[閱讀'cilk-plus'標籤信息](https://stackoverflow.com/tags/cilk-plus/info)它說「**英特爾®** Cilk™Plus是C和C++的擴展「(強調我的)。像這樣的英特爾語言擴展通常只在英特爾編譯器中使用,您確定GCC支持它嗎? –

回答

1

您需要在創建設置CMAKE_CXX_FLAGS前目標與add_executable

不過,我建議你使用target_compile_option代替:

target_compile_options(C__Threads PUBLIC -fcilkplus) 

當然,這有的add_executable之後進行

+0

我添加了你的建議。構建成功,但程序不會運行(cilk_spawn下的那些紅色波浪線仍然存在)。 順便說一下,我更新了CMakeLists.txt的內容和構建輸出。 – leqo

+0

@leqo「不會運行」,紅色波浪線是兩個不同的問題,與構建問題無關。這些波浪線可能是因爲Cilk是該語言的擴展*,CLion尚未認識到這一點。不幸的是,「不會運行」的問題不是我能提供的幫助,而是另一個問題的主題。 –

+0

@leqo哦,請不要更新問題中的代碼,以包含答案的解決方案,因爲突然間問題不再有問題問題,並且它使得答案變得毫無價值。相反,只要將答案標記爲已接受(單擊答案旁邊的「剔號」)即可表示它是解決此問題的答案。或者,如果答案有幫助,可以添加一個評論,說明它有幫助,但並未完全解決問題,並可能將其投票。然後你可以編輯你的問題*添加*「這個答案有幫助,但我仍然有這些問題」。 –