如何在Linux(CentOS7)中使用vcpkg管理C包

1.vcpkg简介

microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS (github.com)

 如果你有过使用makefile的经验,你会体会到使用C语言的包有多么麻烦。首先你需要从网上找到所需库的源码,然后下载下来进行在编译,获得lib文件。之后在使用的时候需要指定头文件、库文件的路径,比如下面这个编译一个含Mysql.h头文件的程序的静态编译语句:

g++ -o mysqldemo -static mysql_demo.cpp -I/opt/vcpkg/installed/x64-linux/include/mysql/ -L/opt/vcpkg/installed/x64-linux/lib/ -Wl,--start-group -lmariadb -lz -ldl -lm -lpthread -lssl -lcrypto -ldl -Wl,--end-group 

vcpkg可以帮你管理这些事情,让你可以通过最简单的语句 完成编译工作。

但是vcpkg主要用于Windows下的VS Studio IDE和跨平台的cmake里。在Windows中,可以通过“集成到全局”获得无缝的F5运行丝滑体验。它在Linux的makefile中应用的表现并不是很好。但对于无法用Linux包管理工具dnf下载的包,vcpkg还是能发挥一定作用的。

2.下载vcpkg

git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat

从GitHub下载开源vcpkg,并编译

3.将vcpkg可执行变量加入环境变量PATH

4.将vcpkg的默认头文件(.h)及库文件(.a .so)路径加入gun默认搜索变量

参考: linux下gcc默认搜索头文件及库文件的路径 - youxin - 博客园 (cnblogs.com)

在 /etc/profile 文件最后添加下面内容(对所有用户永久生效 )

###################################自定义添加###########################
#将vcpkg加入PATH,以便在任何路径下都可运行其下可执行文件
export PATH=/opt/vcpkg:$PATH

#将vcpkg的默认头文件下载路径加入gun的默认搜索路径
export C_INCLUDE_PATH=/opt/vcpkg/installed/x64-linux/include/
export CPLUS_INCLUDE_PATH=/opt/vcpkg/installed/x64-linux/include/

#将vcpkg的默认库文件载路径加入gun的默认搜索路径
export LD_LIBRARY_PATH=/opt/vcpkg/installed/x64-linux/lib/
export LIBRARY_PATH=/opt/vcpkg/installed/x64-linux/lib/

 输入source语句使配置文件立即生效

 source /etc/profile

source命令:source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

 用法:source filename 或 . filename

 5. 检查是否配置成功

输入export命令,输出全部环境变量

查看gcc预处理C时的的搜索目录:

echo | gcc -x c -v -E -

查看gcc预处理C++时的的搜索目录:

echo | gcc -x c++ -v -E -

查看clang预处理C++时的搜索目录:

echo | clang -x c++ -v -E -

 

 静态编译语句简化为:(由于Mysql.h比较特殊,在文件夹里,故还需要指定)一般只需指定静态库名即可(-l)

g++ -o mysql_demo -static  mysql_demo.cpp -I/opt/vcpkg/installed/x64-linux/include/mysql/ -Wl,--start-group -lmariadb -lz -ldl -lm -lpthread -lssl -lcrypto -ldl -Wl,--end-group

 对于动态编译语句,是这样的,它使用的是通过dbf下载的包

(/etc/yum.repos.d/文件夹下的PowerTools repo文件Rocky-PowerTools.repo下,enable=1,启用后才能dnf install)

g++ -o mysqldemo mysql_demo.cpp -I/usr/include/mysql -lmysqlclient

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值