有谁用CMake吗?怎么加入/GL编译选项

ahao 2010-01-28 06:50:31
编译器VC,我用
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")

但没有作用,项目设置里还是“无全程序优化”其他选项都可以加上,就这个不行
...全文
506 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ahao 2010-02-11
谢了:),改了下cmake,现在可以了
  • 打赏
  • 举报
回复
logiciel 2010-02-11
我收到了2个关于在Cmake中set“Whole_Program_Optimization”to Yes in VS 2005的邮件:

Not sure, probably an omission. "/GL" appears to be supported in
cmVS10CLFlagTable.h but not cmLocalVisualStudio7Generator.

Here's a patch
http://public.kitware.com/Bug/view.php?id=10263

P.S.
If it's not clear, CMake not supporting the WholeProgramOptimization
XML tag only affects what the Visual Studio GUI looks like and doesn't
affect the compiling of the code since the /GL shows up in the
additional options line and thus gets added to the command line when
the compiler is run.

--
Philip Lowman

-----------------------------------------------------------------
I've seen a similar case where the CMake-generated .vcproj "looked"
wrong in the IDE but the compiler was actually using the appropriate
setting (the /DEBUG flag iirc).

It may be that Visual Studio is actually compiling the code with "Whole Program
Optimization". Can you check that somehow?

tyler
  • 打赏
  • 举报
回复
jackyjkchen 2010-01-30
为什么要用CMake?就算是多工程,一个批处理也比cmake方便,更何况VS还有生成文件解决方案,用VS就用自己的东西,够用了,那些个“通用”的工具碰上“专有”的开发平台,我总感觉把简单问题搞复杂
  • 打赏
  • 举报
回复
logiciel 2010-01-30
我发了一个邮件到Kitware询问此问题.
  • 打赏
  • 举报
回复
logiciel 2010-01-30
[Quote=引用 8 楼 ahao 的回复:]
引用 7 楼 logiciel 的回复:
VC2005也有“全程序优化”这个选项,情况与VC2008相同。

如果CMake生成的.vcproj文件中是WholeProgramOptimization="1",那么就可以在IDE中看到了。


生成的2005的vcproj里有WholeProgramOptimization吗?2008的vcproj里没有
[/Quote]

生成的2005的vcproj里也没有WholeProgramOptimization.

我是想说,如果CMake把生成
AdditionalOptions=" /Zm1000 /GL"
改为生成
WholeProgramOptimization="1"
就好了.

不知CMake为何如此处理.
  • 打赏
  • 举报
回复
traceless 2010-01-30
打开才发现原来是LZ呀

帮你顶一下
  • 打赏
  • 举报
回复
ahao 2010-01-30
[Quote=引用 11 楼 jackyjkchen 的回复:]
为什么要用CMake?就算是多工程,一个批处理也比cmake方便,更何况VS还有生成文件解决方案,用VS就用自己的东西,够用了,那些个“通用”的工具碰上“专有”的开发平台,我总感觉把简单问题搞复杂
[/Quote]

因为有的项目要跨平台,能生成相应的项目文件是很方便的,
即使不跨平台,用cmake可以自动设置好我常用的一些项目设置,
输出路径,优化选项等,常用的库包含什么的,全自动,非常方便。
  • 打赏
  • 举报
回复
ahao 2010-01-30
[Quote=引用 10 楼 logiciel 的回复:]
我发了一个邮件到Kitware询问此问题.
[/Quote]

谢谢,可能他们还没时间修正这个问题吧
  • 打赏
  • 举报
回复
ahao 2010-01-29
谢谢楼上的,怪我没说清楚
vc2008的情况下,/GL参数能加到命令行上,在AdditionalOptions里面会有,
但是在IDE里打开项目设置,全程序优化选项还是“无”
我不记得2005有没有“全程序优化”这个选项。

这个和手动设置是不同的,手动设置“全程序优化”开启时,IDE会自动加入/GL和/LTCG选项
现在的问题就是,直接加上/GL和/LTCG后,IDE不认。

不过这个问题不是太大,只是感觉不太完美。
  • 打赏
  • 举报
回复
logiciel 2010-01-29
我用CMake2.8.0、VC6和VS2005试了一个简单例子。

文件CMakeLists.txt的内容:
PROJECT(main)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS})

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")

打开VC6工程,在project settings选Win32 Release,看到Project Options中有/GL, Optimizations框中是Maximize Speed.

在VS2005工程文件目录中的.vcproj文件中看到
AdditionalOptions=" /Zm1000 /GL"

我想CMakeLists.txt中的设置起作用了。

  • 打赏
  • 举报
回复
ahao 2010-01-29
谢谢楼上的:)
补充一下,是vc2008

基本得出结论了,是cmake的问题
  • 打赏
  • 举报
回复
cocat 2010-01-29
不是特别懂,帮顶
  • 打赏
  • 举报
回复
ahao 2010-01-29
[Quote=引用 7 楼 logiciel 的回复:]
VC2005也有“全程序优化”这个选项,情况与VC2008相同。

如果CMake生成的.vcproj文件中是WholeProgramOptimization="1",那么就可以在IDE中看到了。
[/Quote]

生成的2005的vcproj里有WholeProgramOptimization吗?2008的vcproj里没有
  • 打赏
  • 举报
回复
logiciel 2010-01-29
VC2005也有“全程序优化”这个选项,情况与VC2008相同。

如果CMake生成的.vcproj文件中是WholeProgramOptimization="1",那么就可以在IDE中看到了。
  • 打赏
  • 举报
回复
cattycat 2010-01-29
up,接点分。
  • 打赏
  • 举报
回复
evanxgsh 2010-01-29
学习了
  • 打赏
  • 举报
回复
相关推荐
发帖
工具平台和程序库
加入

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2010-01-28 06:50
社区公告
暂无公告