Visual studio 在CMakeLists.txt中更改一个项目的编译器标志
我有一个指定多个可执行文件的CMakeLists.txt。对于其中的一个项目,我希望使用静态运行时 我在这里找到了这个解决方案: 这涉及更改CMAKE_CXX_标志和CMAKE_C_标志(以及其他标志) 然而,这样做会改变每个项目的运行库。通过我的测试,无论你在哪里设置这些,它都会改变它Visual studio 在CMakeLists.txt中更改一个项目的编译器标志,visual-studio,cmake,Visual Studio,Cmake,我有一个指定多个可执行文件的CMakeLists.txt。对于其中的一个项目,我希望使用静态运行时 我在这里找到了这个解决方案: 这涉及更改CMAKE_CXX_标志和CMAKE_C_标志(以及其他标志) 然而,这样做会改变每个项目的运行库。通过我的测试,无论你在哪里设置这些,它都会改变它 有没有办法只为一个项目做到这一点?如果您为“静态运行时”可执行文件提供自己的CMakeLists.txt文件,并通过将其包含在父项目中,您就可以做到这一点 在子目录CMakeLists.txt中设置的变量不会影
有没有办法只为一个项目做到这一点?如果您为“静态运行时”可执行文件提供自己的CMakeLists.txt文件,并通过将其包含在父项目中,您就可以做到这一点 在子目录CMakeLists.txt中设置的变量不会影响父范围中的类似变量,因此您可以在父
CMakeLists.txt中设置/MD
或/MDd
标志,并在子目录中将其替换为/MT
或/MTd
请注意,尽管该命令名为add_subdirectory
,但它不需要引用文件系统意义上的实际子目录,只需引用其他具有自己的CMakeLists.txt的目录即可。很抱歉,没有提前回复,我的计算机在发布此消息后就遇到了大量问题。只是让它启动并运行,所以我很快会测试它。虽然我相信这会奏效,但对我来说似乎有点困难。一个问题:如果我使用一个单独的CMakeLists.txt文件,我可以在父目录中访问该目标吗?我在父目录中包含了目录等。@AdmiralJonB-是的,目标目录将在父目录CMakeList范围中可用。