0%

Linux下C++项目对动态库的引用管理

我通常使用premake管理,vscode做开发

所以需要在以下地方做修改

  1. 为了让VScode代码提示阶段能完成链接,需要修改 c_cpp_properties.json 文件

libcurl 为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/libcurl/8.6.0/include" //在此处添加上include路径
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}

如果使用 apt 命令或者在源码中 make install 安装

则需要运行命令刷新动态库

1
sudo ldconfig

在项目根目录的 premake5.lua 文件中添加全局路径

1
2
3
4
5
6
...

IncludeDir = {}
IncludeDir["libcurl"] = "/usr/local/libcurl/8.6.0/include"

...

在引用的项目的 premake5.lua 文件中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...

includedirs
{
"%{IncludeDir.libcurl}", --添加include
}

links --链接库
{
"event",
"curl" --添加链接库,最后在编译命令时表现为 '-lcurl' 参数
}

...