cmake指定程序输出目录和库文件输出目录和拷贝文件

概述

    1. 本文样式环境: win10+cmake 3.18
    1. 本文将介绍使用CMAKE配置项目输出目录和 LIbrary项目的输出目录
    1. 本文将介绍 cmake的file函数的基础用法之拷贝文件

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

重点, 这些设置一定要放在函数add_library或者add_executable之前

开始之前

我定义了如下变量, 用作保存x64和x86不同设置

# 64位
if (CMAKE_CL_64)
    # 设置 可执行程序输出目录
	set(publish_bin_debug 			${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/bin/debug64)
	set(publish_bin_release 		${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/bin/release64)

    # 设置库文件输出目录
	set(publish_lib_debug 			${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/lib/debug64)
	set(publish_lib_release 		${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/lib/release64)

	set(PROJECT_NAME 				${PROJECT_NAME}64)
# 32
else()
 # 设置 可执行程序输出目录
	set(publish_bin_debug 			${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/bin/debug)
	set(publish_bin_release 		${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/bin/release)

 # 设置库文件输出目录
	set(publish_lib_debug 			${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/lib/debug)
	set(publish_lib_release 		${CMAKE_CURRENT_SOURCE_DIR}/publish/x86/lib/release)
endif()

1.设置程序输出目录

如果你的项目是动态库,比如 dll, 或者你的项目是 可执行程序, 下面的设置,将输出到指定的目录。

		# 指定可执行程序输出目录
		set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG 	${publish_bin_debug})
		set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE 	${publish_bin_release})

2. 设置库文件输出目录

		# 指定 库文件输出目录
		set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG 	${publish_lib_debug})
		set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RLEASE 	${publish_lib_release})

3. 文件拷贝

动态库项目,咱们做好后都会发布 头文件和库文件和动态库三类文件,之前,

  • windwos,我使用批处理bat执行文件拷贝到指定目录
  • Linux, 使用shell完成文件拷贝。
    有了 CMake以后,直接使用file 实现文件拷贝,简直方便的不要不要的。
    一个简单的例子:
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/include/udp/udp_interface.h DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/publish/x64/include)

COPY的语法是: file(COPY <填写你要拷贝的文件> DESTINATION <填写你要的输出目录>)
更多用法,请参考 CMake的官方文档。

posted @ 2021-03-08 22:37  mohist  阅读(13003)  评论(3编辑  收藏  举报