CMake链接库,会检索库引用头文件路径

news/发布时间2024/5/18 20:55:49

当使用CMake,target_link_libraries来链接静态库文件那边的头文件路径时,如果是跨了两层以上(即calculter到common这样),会导致CMake报错。add.h没有找到common.h头文件路径。

一般来说,编译时候会对头文件(.h)包含在源文件(.cpp)的头部,这时就会检查链接库的头文件路径。(个人猜测)

如果是这样写则不会报错,也不会去检查所链接库的头文件路径有没有包含在当前文件的头文件路径。(将头文件的引用写入到源文件里)。

add_library(calculater STATIC calculater.cpp)
target_link_libraries(calculater PRIVATE add sub)
target_include_directories(calculater PUBLIC ./)
#include "calculater.h"
#include "add.h"
#include "sub.h"void calcul(void) {int a = 5;int b = 2;add(a,b);sub(a,b);return;
}

当然了,也可以在链接头文件路径时使用PUIBLIC,而不是用PRIVATE。改target_link_libraries使用方法也是可以的。
PS:b站这个UP主讲CMake讲得非常不错,对于新手来说。
https://www.bilibili.com/video/BV1ea4y1Q7c3?vd_source=8d73344d8e8f8345b404b0057dc8e76a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/12226072.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

使用ollama分别在我的window、mac、小米手机上部署体验llama3-8b

1、ollama到底是个什么玩意 一句话来说, Ollama 是一个基于 Go 语言开发的简单易用的本地大模型运行框架。可以将其类比为 docker(有类似docker中的一些常规命令list,pull,push,run 等等),事实上确实也制定了类似 docker 的一种模型应用标准,在后边的内容中,你能更加真切…

pwn知识——劫持__malloc_hook(在加入tcache以后)

导论 动调是最好的导师! malloc_hook函数解析 malloc_hook是malloc的钩子函数,在执行malloc时,会先检测__malloc_hook的值,如果malloc_hook的值存在,则执行该地址(值里边表现为十六进制,可以成为地址),也就是说,如果我们成功劫持malloc_hook以后并修改它的值为one_ga…

4.21 团队作业——第二天

今天进行了晨会主要内容是进行了任务的时间管理分配,每个团队成员领取了任务,并且进行了任务的时间限制,燃尽图的书写概况

IEAD添加插件生成UML图

使用IDEA中生成UML(统一建模语言) 一、准备环境 在Ubuntu环境下进行配置使用,工具和插件在Windows环境下也有版本,需要的工具、插件都是相同的,同样安装配置即可。 。IDEA社区版:因为免费 。插件PlantUML Parser:生成".puml"文件 。GrapHviz:通过puml文件生成…

ubuntu无法进入桌面的一种情况

问题描述无法进入桌面 可以进入锁屏 输入密码后黑屏,并返回锁屏 tty能进入startx startx中部分软件无法打开 无法进入桌面最直接的错误,非常严重不可原谅。用户登陆输入密码,黑屏,然后回到用户登陆。后续操作使用tty3执行startx展现。 大量的.desktop无法打开 执行code竟然…