Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake在clang try_compile中使用windows样式标志失败_C_Cmake_Clang - Fatal编程技术网

cmake在clang try_compile中使用windows样式标志失败

cmake在clang try_compile中使用windows样式标志失败,c,cmake,clang,C,Cmake,Clang,在我尝试让cmake与clang和gcc合作的过程中,我遇到了我认为是有史以来最有趣的事情 我有一个很小的hello world ish程序,它在ubuntu中使用cmake中的叮当声进行完美编译,安装速度非常快,这只是一个有趣的尝试。 现在在windows方面,我遇到了更多的问题,我按照常规顺序安装了MinGW w64,然后是clang(也是64位),最后是cmake(由于学校项目,较早时安装了VS15)。我设法摸索不同的cmake东西,直到我几乎编译、清除构建目录并使用cmake-G“Min

在我尝试让cmake与clang和gcc合作的过程中,我遇到了我认为是有史以来最有趣的事情

我有一个很小的hello world ish程序,它在ubuntu中使用cmake中的叮当声进行完美编译,安装速度非常快,这只是一个有趣的尝试。
现在在windows方面,我遇到了更多的问题,我按照常规顺序安装了MinGW w64,然后是clang(也是64位),最后是cmake(由于学校项目,较早时安装了VS15)。我设法摸索不同的cmake东西,直到我几乎编译、清除构建目录并使用
cmake-G“MinGW Makefiles”
在我的build文件夹中,尝试编译。相反,我得到的错误告诉我编译失败了,没过多久我就明白了原因
cmake的try_编译尝试将MSVC风格的标志(如
/nologo
)传递给clang,而后clang认为这些标志是目录

我找不到任何方法强制标志看起来像常规的
-flag


是否有一些隐藏的cmake变量可以设置,或者我只是想在此特定配置中编译?

将-fmsc version=0添加到标志中,cmake不会假设它正在模拟MSVC


这已被选中。

将-fmsc version=0添加到标志中,CMake将不会假定它正在模拟MSVC


已选中此选项。

您使用哪一版本的CMake
clang
支持最近才正式添加。请参见例如:@Florian我使用的是cmake 3.6.2,CMakeLists.txt顶部有
cmake_最小要求(3.6)
,使用NMake或MinGW makefiles没有区别。clang有一个与VS兼容的模式,因此cmake可能认为您想要使用VS进行构建。不过,我不知道如何修复它。我现在发现,可以尝试编辑这些文件,如果我今天晚些时候让它运行的话,我会在cmake上提交一份bug报告……你使用哪一版本的cmake
clang
支持最近才正式添加。请参见例如:@Florian我使用的是cmake 3.6.2,CMakeLists.txt顶部有
cmake_最小要求(3.6)
,使用NMake或MinGW makefiles没有区别。clang有一个与VS兼容的模式,因此cmake可能认为您想要使用VS进行构建。不过,我不知道如何修复它。我现在发现,可以尝试编辑这些文件,如果我今天晚些时候让它运行的话,我会在cmake上提交一份bug报告……这是有史以来最好的答案。我已经尽了很大的努力想让它发挥作用。多亏了你的回答,我终于能够构建一个非常基本的CMake工具链文件。谢谢最好的答案。我已经尽了很大的努力想让它发挥作用。多亏了你的回答,我终于能够构建一个非常基本的CMake工具链文件。谢谢