如何使用不同的ADD
答案:2 悬赏:40
解决时间 2021-04-06 19:42
- 提问者网友:绿海猖狂
- 2021-04-06 14:41
如何使用不同的ADD
最佳答案
- 二级知识专家网友:眠于流年
- 2021-04-06 15:15
如何使用不同的ADD_EXECUTABLE的调试版本?
visual-studio-视觉-工作室cmake转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
我想建立我的应用程序,使得调试模式是一个控制台应用程序,并释放模式是一个Win32应用程序。按照我需要添加WIN32至add_executable这取决于我是否想一个控制台应用程序或没有。 我的Visual Studio中,我可以'CMAKE_BUILD_TYPE(生成的项目包含多个配置)。我怎么能告诉CMakeWIN32对发布版本,并忽略它的调试版本?
(转载)
-------------------------------------------------------------------------------------------------------------------------
1. 引用if(WIN32)
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
endif(WIN32)
更新:此功能在最近的版本中,由于一个错误打破.a种解决方法我发现是指定“/子系统:窗户”,而不是“/ SUBSYSTEM:WINDOWS”。这似乎工作的原因。
2. 不知道如果这个bug已经修正在CMake的呢。我用VC ++2010的快递和CMake的v2.8.10.1(这是目前最新的版本),我仍然有确切的问题。 A工作液在这里提供:通过添加修改源代码(例如main.cpp中/ main.c中):#ifndef NDEBUG
#pragma comment(linker, "/SUBSYSTEM:CONSOLE")
#endif
或者,您也可以添加链接器标志“/子系统:WINDOWS”的发行模式的构建。我这个定义,似乎工作:#ifdef _MSC_VER
# ifdef NDEBUG
# pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
# else
# pragma comment(linker, "/SUBSYSTEM:CONSOLE")
# endif
#endif
使用入口点的设置,以避免你已经定义的情况下,链接器错误:int main(int argc, char* argv[]) { ... }
visual-studio-视觉-工作室cmake转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
我想建立我的应用程序,使得调试模式是一个控制台应用程序,并释放模式是一个Win32应用程序。按照我需要添加WIN32至add_executable这取决于我是否想一个控制台应用程序或没有。 我的Visual Studio中,我可以'CMAKE_BUILD_TYPE(生成的项目包含多个配置)。我怎么能告诉CMakeWIN32对发布版本,并忽略它的调试版本?
(转载)
-------------------------------------------------------------------------------------------------------------------------
1. 引用if(WIN32)
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
endif(WIN32)
更新:此功能在最近的版本中,由于一个错误打破.a种解决方法我发现是指定“/子系统:窗户”,而不是“/ SUBSYSTEM:WINDOWS”。这似乎工作的原因。
2. 不知道如果这个bug已经修正在CMake的呢。我用VC ++2010的快递和CMake的v2.8.10.1(这是目前最新的版本),我仍然有确切的问题。 A工作液在这里提供:通过添加修改源代码(例如main.cpp中/ main.c中):#ifndef NDEBUG
#pragma comment(linker, "/SUBSYSTEM:CONSOLE")
#endif
或者,您也可以添加链接器标志“/子系统:WINDOWS”的发行模式的构建。我这个定义,似乎工作:#ifdef _MSC_VER
# ifdef NDEBUG
# pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
# else
# pragma comment(linker, "/SUBSYSTEM:CONSOLE")
# endif
#endif
使用入口点的设置,以避免你已经定义的情况下,链接器错误:int main(int argc, char* argv[]) { ... }
全部回答
- 1楼网友:眠于流年
- 2021-04-06 16:07
add in 是加进..
add to 是加到..
add in five 是加五
add to five 是加到五。!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |