大型项目CMakeLIsts.txt的编写规范

1、Very simple executable

PROJECT( helloworld )   # 非必需
SET( hello_SRCS hello.cpp )
ADD_EXECUTABLE( hello ${hello_SRCS} )

说明:
ADD_EXECUTABLE creates an executable from the listed sources
Tip: add sources to a list (hello_SRCS), do not list them in ADD_EXECUTABLE

2、Very simple library

PROJECT( mylibrary )  #非必需
SET( mylib_SRCS library.cpp )
ADD_LIBRARY( my SHARED ${mylib_SRCS} )

说明:
ADD_LIBRARY creates an static library from the listed sources
Add SHARED to generate shared libraries (Unix) or dynamic libraries (Windows)
不加SHARED 生成.a 静态库,加了SHARED ,生成.so 动态链接库

3、Process a list

FOREACH(loop_var)
...
ENDFOREACH(loop_var)

4、3rd party or .h

If the 3rd party lib

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMakeLists.txt是用于构建CMake项目的配置文件。它描述了项目的源代码、依赖项和构建规则等信息。下面是一个基本的CMakeLists.txt文件的示例: ```cmake cmake_minimum_required(VERSION 3.10) # 指定CMake的最低版本要求 project(MyProject) # 设置项目名称 # 添加源代码文件 add_executable(MyExecutable example_person.cpp) # 添加依赖库 add_subdirectory(proto_pb2) add_subdirectory(proto_buf) # 设置头文件搜索路径 include_directories(include) # 设置库文件搜索路径 link_directories(lib) # 链接依赖库 target_link_libraries(MyExecutable ProtoBuf) # 设置编译选项 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # 设置安装规则 install(TARGETS MyExecutable DESTINATION bin) ``` 上述示例中,我们首先指定了CMake的最低版本要求为3.10,并设置了项目名称为"MyProject"。然后,我们使用`add_executable`命令添加了一个名为"MyExecutable"的可执行文件,并将源代码文件"example_person.cpp"与之关联。 接下来,我们使用`add_subdirectory`命令添加了两个子目录"proto_pb2"和"proto_buf",用于构建这两个子目录中的项目。 然后,我们使用`include_directories`命令设置了头文件搜索路径,将"include"目录添加到搜索路径中。 使用`link_directories`命令设置了库文件搜索路径,将"lib"目录添加到搜索路径中。 使用`target_link_libraries`命令将依赖库"ProtoBuf"链接到"MyExecutable"可执行文件上。 使用`set`命令设置了编译选项,将C++标准设置为C++11。 最后,使用`install`命令设置了安装规则,将"MyExecutable"可执行文件安装到"bin"目录下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值