Windows 10下vcpkg安装pkg-config、sigc++-2.0及VS2017项目配置问题
咱们一步步来解决这些问题,都是Windows上用vcpkg搭配pkg-config、CMake的常见场景:
1. 用vcpkg安装pkg-config和sigc++-2.0
首先得明确:vcpkg里没有直接叫pkg-config的包,对应的是pkgconf(功能完全一致),而sigc++-2.0对应的包是libsigcpp,你已经查到它已安装,不过还是贴一下安装命令供参考:
- 打开命令提示符(CMD)或者PowerShell,进入vcpkg所在目录(比如
C:\src\vcpkg),运行:
要是你需要64位版本,把# 安装pkgconf(即pkg-config)的x86版本 .\vcpkg install pkgconf:x86-windows # 安装libsigcpp(即sigc++-2.0)的x86版本,如果你还没装的话 .\vcpkg install libsigcpp:x86-windowsx86-windows换成x64-windows就行。
2. 让pkg-config识别到sigc++-2.0
核心是给pkg-config指定.pc文件的路径,也就是你提到的C:\src\vcpkg\installed\x86-windows\lib\pkgconfig,有两种设置方式:
临时生效(仅当前终端会话)
- CMD里运行:
set PKG_CONFIG_PATH=C:\src\vcpkg\installed\x86-windows\lib\pkgconfig - PowerShell里运行:
$env:PKG_CONFIG_PATH = "C:\src\vcpkg\installed\x86-windows\lib\pkgconfig"
永久生效(所有终端会话都能用)
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」,变量名填
PKG_CONFIG_PATH,变量值填C:\src\vcpkg\installed\x86-windows\lib\pkgconfig - 点击确定保存,之后重启终端生效
验证是否成功
打开新的终端,运行:
pkg-config --list-all | findstr sigc
如果能看到类似sigc++-2.0 SigC++ - The Typesafe Callback Framework for C++的输出,就说明pkg-config已经能识别到sigc++-2.0了。
3. 用vcpkg、CMake和pkg-config生成VS2017项目文件
先确保vcpkg和CMake已经集成好,再写CMake配置,最后生成项目:
步骤1:集成vcpkg到CMake
在vcpkg目录下运行:
.\vcpkg integrate install
终端会提示“Applied user-wide integration for this vcpkg root.”,说明集成成功。
步骤2:编写CMakeLists.txt
在你的项目根目录创建CMakeLists.txt,示例内容如下:
cmake_minimum_required(VERSION 3.15) project(MySigcDemo) # 启用pkg-config模块 find_package(PkgConfig REQUIRED) # 查找sigc++-2.0依赖 pkg_check_modules(SIGCPP REQUIRED sigc++-2.0) # 添加你的可执行文件(这里假设你的主文件是main.cpp) add_executable(${PROJECT_NAME} main.cpp) # 链接sigc++的头文件、库和编译选项 target_include_directories(${PROJECT_NAME} PRIVATE ${SIGCPP_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} PRIVATE ${SIGCPP_LIBRARIES}) target_compile_options(${PROJECT_NAME} PRIVATE ${SIGCPP_CFLAGS_OTHER})
步骤3:生成VS2017项目文件
打开终端,进入你的项目根目录,运行以下命令(注意路径的斜杠和架构匹配):
# 生成x86架构的VS2017项目 cmake -G "Visual Studio 15 2017" -A Win32 -DCMAKE_TOOLCHAIN_FILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake .
如果需要x64架构,把-A Win32换成-A x64,同时确保你安装的vcpkg包是x64-windows版本。
运行完后,项目目录里会生成MySigcDemo.sln文件,直接用VS2017打开即可。
内容的提问来源于stack exchange,提问作者James Hao




