cmake force config=库的版本 我有一个CGED C++项目,它由几个可执行文件和DLL组成。因为DLL被注入到另一个应用程序中,所以它们必须使用config=Release构建,即使可执行文件是使用调试信息构建的
有没有办法强迫cmake这么做?在调用cmake force config=库的版本 我有一个CGED C++项目,它由几个可执行文件和DLL组成。因为DLL被注入到另一个应用程序中,所以它们必须使用config=Release构建,即使可执行文件是使用调试信息构建的,c++,windows,dll,cmake,C++,Windows,Dll,Cmake,有没有办法强迫cmake这么做?在调用add\u library()之前,我尝试了set(CMAKE\u BUILD\u TYPE“Release”),但没有成功 非常感谢您的帮助。在windows上,构建库时,您必须另外指定配置 例如: cmake --build {BUILDDIR} --config Release 另请参见:不是最好的,而是 target_compile_options(libmylib PRIVATE "-O3") 完成任务。为什么库必须在发布模
add\u library()
之前,我尝试了set(CMAKE\u BUILD\u TYPE“Release”)
,但没有成功
非常感谢您的帮助。在windows上,构建库时,您必须另外指定配置 例如:
cmake --build {BUILDDIR} --config Release
另请参见:不是最好的,而是
target_compile_options(libmylib PRIVATE "-O3")
完成任务。为什么库必须在发布模式下构建?你说的注射是什么意思?如何“注入”库?我正在使用将DLL注入另一个进程。如果DLL是用config=Debug构建的,那么这将失败。是的,我知道这一点,我正在传递这一点。然而,我正在用这个命令构建所有文件。因此,如果我使用
cmake--build{BUILDDIR}--config Debug
构建它们,我希望DLL忽略配置参数,而是使用--config Release
构建。请您解释一下为什么这不是最好的方法,或者为什么它可以工作,以及为什么这里需要-O3
。为什么这不是最好的方法?->最好是通过CMAKE_CXX_FLAGS_发布,而不仅仅是“-O3”。2.为什么是“O3”?->在发布之前,我假设上面的问题是“优化的”。使用“O3”,大多数编译器(clang/gcc/msvc)将执行优化的代码生成。