2023-09-08 buildroot CMakeLists.txt 文件学习,CMakeLists.txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件

一、CMakeLists.txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件。

二、测试实例

        2.1 CMakeLists.txt

# 指定工程名
PROJECT (HELLO)
# 现阶段,你只需要了解 SET 指令可以用来显式的定义变量即可
# 将 hello.cpp 赋值给 SRC_LIST 变量,也可以指定多个源文件,用空格隔开
# SET(SRC_LIST hello.cpp add.cpp sub.cpp)
SET(SRC_LIST testa.c testb.c)
# 输出打印构建目录
MESSAGE(STATUS "This is HELLO_BINARY_DIR " ${HELLO_BINARY_DIR})
# 输出打印资源目录
MESSAGE(STATUS "This is HELLO_SOURCE_DIR " ${HELLO_SOURCE_DIR})
# 输出打印资源目录,与HELLO_SOURCE_DIR 一样 
MESSAGE(STATUS "This is PROJECT_SOURCE_DIR " ${PROJECT_SOURCE_DIR})
# 输出打印 CMake 资源目录,与 PROJECT_SOURCE_DIR 一样 
MESSAGE(STATUS "This is CMAKE_SOURCE_DIR " ${CMAKE_SOURCE_DIR})
# 生成可执行文件 hello ,${SRC_LIST}是引用变量,也就是源文件 hello.cpp
ADD_EXECUTABLE(hello ${SRC_LIST})

        2.2 test.h

#ifndef _TEST_H_
#define _TEST_H_
 
struct bluez_a2dp_codec {
       int id;
};

const struct bluez_a2dp_codec **bluez_a2dp_codecs;

#endif

        2.3 testa.c


#include <stdlib.h>
#include <stdio.h>
#include "test.h"
 
static const struct bluez_a2dp_codec a2dp_codec_source_ldac = {
	.id = 120,
};


static const struct bluez_a2dp_codec *a2dp_codecs[] = {
	&a2dp_codec_source_ldac,
};

const struct bluez_a2dp_codec **bluez_a2dp_codecs = a2dp_codecs;
extern void test();
int main(void)
{

     printf("hello world! id = %d\n",bluez_a2dp_codecs[0]->id);
     test(); 
    return 0;
}

        2.4 testb.c

#include <stdlib.h>
#include <stdio.h>
#include "test.h"

void test()
{
	printf("test! id = %d \n",bluez_a2dp_codecs[0]->id);
 
}

        2.5 在ubuntu上面测试运行结果

三、参考文章

CMake 语法 - 详解 CMakeLists.txt - 简书

CMake 语法 - 详解 CMakeLists.txt - 简书

CMake使用方法以及CMakeLists.txt 学习总结(1)_cmakelist如何使用_deer07的博客-CSDN博客

CMakeLists.txt详解_上进的打工人的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值