我的问题是这样的: 我正在使用 Visual Studio 2010 开发一个小型解析器。 我使用 CMake 作为构建配置工具。
但我发现默认的可执行构建行为,不方便。 我想要的是,让我的最终程序位于:
E:/parsec/bin/<exe-name>.<build-type>.exe
而不是
E:/parsec/bin/<build-type>/<exe-name>.exe
你会如何使用 CMake 做到这一点?
最佳答案
有几种选择:
- 编译后复制可执行文件
- 为您的可执行文件自定义输出目录
编译后复制可执行文件
成功构建后,您可以复制可执行文件(请参阅初学者答案),但使用安装目标可能会更好:
使用 install命令指定将被复制到 CMAKE_INSTALL_PREFIX 的目标(可执行文件、库、头文件等)目录。您可以在 cmake 的命令行(或在 cmake GUI 中)指定 CMAKE_INSTALL_PREFIX。
为您的可执行文件自定义输出目录
警告:不建议直接在 cmakelists.txt 中设置绝对路径。
使用 set_target_properties定制RUNTIME_OUTPUT_DIRECTORY
set_target_properties( yourexe PROPERTIES RUNTIME_OUTPUT_DIRECTORY E:/parsec/bin/ )
作为替代方法,修改 CMAKE_RUNTIME_OUTPUT_DIRECTORY允许您为 cmake 项目中的 all 目标指定此项。注意修改 CMAKE_LIBRARY_OUTPUT_DIRECTORY构建 dll 时也是如此。
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
其他信息:看看这些问题:
关于c++ - 如何在 CMake 中更改 Win32 构建的可执行输出目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556885/