当前位置: 首页 > news >正文

CMakeLists.txt语法(四)

一.简介

使用外部动态库或者静态库,生成可执行文件。

二.外部库

1.外部库头文件

testlib.h存放目录:/usr/local/testLIB

#ifndef TEST_LIB_H
#define TEST_LIB_H#include<stdio.h>
void printFunc();#endif

2.外部库源文件

testlib.c

#include "testlib.h"void printFunc()
{printf("this is printFunc test\n");
}

3.外部库文件

生成库文件的方法,请参考本专栏文章《CMakeLists.txt语法(三)》。

动态库文件testlib.so和静态库文件testlib.a存放目录:/usr/local/testLIB/lib

三.构建工程

1.工程目录下的CMakeLists.txt

PROJECT(uselib)
ADD_SUBDIRECTORY(src bin)

2.子目录下的文件

(1)CMakeLists.txt

  • 调用动态库
INCLUDE_DIRECTORIES(/usr/local/testLIB)
LINK_DIRECTORIES(/usr/local/testLIB/lib)
ADD_EXECUTABLE(uselib main.c)
TARGET_LINK_LIBRARIES(uselib libtest.so)
  • 调用静态库
INCLUDE_DIRECTORIES(/usr/local/testLIB)
LINK_DIRECTORIES(/usr/local/testLIB/lib)
ADD_EXECUTABLE(uselib main.c)
TARGET_LINK_LIBRARIES(uselib libtest.a)

(2)main.c

#include "testlib.h"void main()
{printFunc();printf("this is use library demo\n");
}

3.外部编译

进入build目录后,执行

cmake ..
make

4.运行编译后的可执行文件

在这里插入图片描述

5.查看可执行文件依赖的动态库

ldd ./uselib

在这里插入图片描述

四.语法

1.INCLUDE_DIRECTORIES

  • 语法:INCLUDE_DIRECTORIES( dir1 dir2 …)
  • 功能:向工程添加多个头文件搜索路径,路径之间用空格分开

2.LINK_DIRECTORIES

  • 语法:LINK_DIRECTORIES(directory1 directory2 …)
  • 功能:添加非标准的共享库搜索路径

3.TARGET_LINK_LIBRARIES

  • 语法:TARGET_LINK_LIBRARIES(target library1 library2…)
  • 功能:为target添加需要链接的共享库
http://www.dtcms.com/a/423977.html

相关文章:

  • 22.Nginx 服务器 LNMP项目
  • 海口高端网站建设网站的基本概念
  • 怎么兼职做网站首饰行业网站建设策划
  • 在 Windows Subsystem for Linux (WSL) 上安装 Rocky Linux
  • NuttX 操作系统核心组件
  • CKAD-CN 考试知识点分享(14) NetworkPolicy 网络策略
  • 硅基计划 4.0 算法 哈希表
  • java源码英文翻译
  • 算法题(221):多重背包(二)
  • sched-domain
  • 企业网站建设中企动力免费的网页游戏
  • python(77) python脚本与jenkins pipeline交互的5种方式
  • 网站多久备案一次百度灰色关键词排名
  • 内江建设局网站注册网站刀具与钢材范围
  • 如何将安卓应用迁移到鸿蒙?
  • wordpress商业网站wordpress虚拟
  • dede 网站名称 空的团员建设网站
  • C++(Qt)软件调试---Linux动态库链接异常排查(38)
  • 记录 Qt 跨线程 信号无法触发槽函数问题
  • wireshark 01——安装
  • 网上最好购物网站邯郸网上销售公司
  • 使用top域名做网站seo职位是什么意思
  • CUDIS 健康协议在 Sui 上打造更健康的未来
  • 装修网站排行榜前十名有哪些南昌网站建设哪家最好
  • Golang学习笔记:context的使用场景
  • 带有客户案例的网站广州专业网站建设报价
  • 昆明微信网站建设软件开发模型有几种并简述其特点
  • 高效实现实体删除的宏解决方案:使用Rust宏优化删除操作
  • Rust泛型详解
  • 官方手表网站网站专题分类