我的CMakeLists.txt
文件的windows如下。
cmake_minimum_required(VERSION 3.5)
project(LogMsg)
# Set the project source files
set(SOURCES
LogMsg.cpp
LogMsgMain.rc
LogMsg.h
resource.h
stdafx.h
)
# Add executable target
add_library(LogMsg SHARED ${SOURCES})
# Set the configuration-specific outputs
set_target_properties(LogMsg PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/Debug"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/Release"
)
# Add include directories
target_include_directories(LogMsg PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
# Specify custom build commands
add_custom_command(TARGET LogMsg POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/LogMsg.rc" "$<TARGET_FILE_DIR:LogMsg>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/LogMsg.h" "$<TARGET_FILE_DIR:LogMsg>"
)
我跑:
cmake -G "Visual Studio 17 2022" -S . -B .
cmake --build . --config Release
在Release
子文件夹中,我获得了**.dll文件、.rc和.h**文件。
但是,目录LogMsg.tlog
和一些其他文件,如:LogMsg.dll.recipe
、LogMsg.obj
和LogMsgMain.res
是在路径LogMsg.dir/Release
中生成的,我无法找到这是如何定义的,因为我希望它立即在Release
文件夹中。
1条答案
按热度按时间fykwrbwg1#
简答:
可以使用以下命令:
长回答:
当你想生成一个项目build-system时,你可以使用以下命令:
在您的命令中,path-to-build为“
.
”,这意味着**目标构建位置(path-to-build)为当前位置,因此某些文件是在当前位置生成的。如果您想获取Release
**文件夹中的所有输出,只需使用以下命令:输出文件将在您的目标位置(
./Release
)生成。当您要生成项目时,可以使用以下命令:
对于您的项目,请使用以下命令:
输出文件将在您的目标位置生成。
有关更多信息,请参阅CMake Documentation。