x64-linux下在vscode使用vcpkg

1.使用vscode远程连接上对应的linux ,或者直接在图形化界面上使用。

2.安装vcpkg 插件,然后打开插件设置。
注意:defalut和host的主机一定和你自己的主机一致,且必须符合vcpkg三元组格式,其中你可以选择工作台的设置,这样每个工作区都设置。

3.在你自己的项目目录下新建一个vcpkg.json,最简单的格式如下,如果你有更加细致的版本控制需求,可自行去官网查询。

json 复制代码
{
    "dependencies": [
        "jsoncpp",
        "boost"
    ]
}

4.编写cmakelist,这个里面可能需要你指定编译器。但是这不是关键

  • 你要把需要找的库,结合使用 find_package()函数,和target_link_libraries() 函数链接到你的项目
  • 有些特殊的库可能不需要连接,比如boost,因此你就没有必要添加
    样板如下:
cmake 复制代码
cmake_minimum_required(VERSION 3.5)

set(CMAKE_C_COMPILER "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER "/usr/bin/g++")
project(my_app VERSION 1.0)
set(VCPKG_TARGET_ARCHITECTURE x64-linux)

find_package(jsoncpp CONFIG REQUIRED)

# 添加您的可执行文件
add_executable(my_app main.cc)

target_link_libraries(my_app PRIVATE JsonCpp::JsonCpp)

5.在使用该库过程中,可能还是需要安装各种依赖,比如boost安装时,要openssl。openssl有需要autoconf等一些列工具,autoconf有可能找不到配置文件需要autoconf-archive。

等等一些列问题,总体来说可能vcpkg目前没有达到这个库最开始的那种需求自动化满足库的需求。但是其不添加进系统库所带来的良好隔离性个人认为还是值得使用的。

个人遇见问题总结
安装boost库如果出现 ...unset

https://github.com/microsoft/vcpkg/pull/38979

json 复制代码
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install git
sudo apt-get install curl
sudo apt-get install tar
sudo apt-get install unzip
sudo apt-get install build-essential
sudo apt-get install libtool
sudo apt-get install autotools-dev
sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install autoconf-archive
sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt-get install python3-dev
sudo apt-get install pkg-config g++ cmake autoconf autoconf-archive


//centos下除了上述对应的必需库之外,可能额外需要一些库
`apk add linux-headers`.  //找对应的的库头文件
`apt install linux-libc-dev`.
sudo dnf install perl-FindBin  #find.bm
sudo dnf install perl
相关推荐
斗转星移35 小时前
Ubuntu20.04 中使用vscode中编辑查看PlantUML
linux·vscode·uml·plantuml
正经教主6 小时前
【问题】解决docker的方式安装n8n,找不到docker.n8n.io/n8nio/n8n:latest镜像的问题
运维·docker·容器·n8n
sukida1006 小时前
BIOS主板(非UEFI)安装fedora42的方法
linux·windows·fedora
●^●6 小时前
Linux 权限修改详解:chmod 命令与权限数字的秘密
linux
唯独失去了从容6 小时前
WebRTC服务器Coturn服务器中的通信协议
运维·服务器·webrtc
光而不耀@lgy7 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
joker_zsl7 小时前
docker的安装和简单使用(ubuntu环境)
运维·docker·容器
偶尔微微一笑8 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
Run1.8 小时前
深入解析 Linux 中动静态库的加载机制:从原理到实践
linux·运维·服务器
VI8664956I268 小时前
全链路自动化AIGC内容工厂:构建企业级智能内容生产系统
运维·自动化·aigc