![](/img/trans.png)
[英]How to generate CMakeLists.txt in Clion when I create project from existing sources?
[英]How to switch between GCC and Clang in Clion from within CMakeLists.txt using windows/cygwin
我放
set(CMAKE_CXX_COMPILER "/usr/bin/clang.exe")
运行/清洁,运行/构建。
我收到链接错误,如:
undefined reference to `std::ios_base::Init::~Init()'
: undefined reference to `__gxx_personality_v0'
据推测,还有其他变量需要改变。 尝试将-lstdc++
添加到CMAKE_CXX_FLAGS
,但没有区别。
例如,是否存在CLion方式而不是CMake方式?
谢谢。
使用CMake指定编译器有点微妙。 虽然您使用的方法,在CMakeLists.txt中设置CMAKE_CXX_COMPILER,但它是CMake常见问题解答中最不推荐的方法。
CLion支持CMake FAQ的方法2:在cmake调用中使用-D
。 在CMakeLists.txt中设置变量无效。
在Mac上,转到Preferences
在Linux / Windows上,转到File | Settings
File | Settings
然后Build, Execution, Deployment | CMake | CMake options
Build, Execution, Deployment | CMake | CMake options
Build, Execution, Deployment | CMake | CMake options
并输入文字:
-D CMAKE_C_COMPILER=/path/to/c_compiler
-D CMAKE_CXX_COMPILER=/path/to/c++_compiler
有关详细信息,请参阅CLion FAQ 。
另请注意,当您更改编译器时,您必须使CLion cmake缓存无效并重新启动,请参阅我的答案如何在Clion中清除CMake缓存? 。
编辑
在我写完这个答案后,CLion添加了对多个构建目录的支持,正如@rubenvb在评论中指出的那样。 这是另一条调查途径。
实际上,在Windows 10环境中运行的最新版本的Clions 2018.2与LLVM clang版本6 /6.0.1甚至7.0一起使用以及GCC mingw x64 win32特定变体。
链接器默认设置为GCC而不是visual studio
我想它也应该在cygwin上使用相同的设置,因为以下也经过测试,也适用于许多流行的c ++ IDE。
测试x64或32特定GCC mingw版本在Clions 2018.2上工作
\\ mingw-w64 \\ x86_64-8.1.0-win32-seh-rt_v6-rev0或mingw-w64 \\ i686-8.1.0-win32-dwarf-rt_v6-rev0
CMake构建设置如下
cmake_minimum_required(VERSION 3.10)
project(project_name )
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_COMPILER "c:/llvm/bin/clang.exe")
set(CMAKE_CXX_COMPILER "c:/llvm/bin/clang++.exe")
// target i686-pc-windows-gnu for 32bit
set(CL_COVERAGE_COMPILE_FLAGS "-v -target x86_64-pc-windows-gnu -Wall -Wextra -std=gnu++17")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CL_COVERAGE_COMPILE_FLAGS}" )
add_executable(project_name yourcpp.cpp)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.