You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vcpkg安装ICU后,如何配置CMake实现静态链接并通过g++编译?

配置CMake静态链接ICU(vcpkg安装)

前置确认

  1. 确保已安装静态版本的ICU:

    • 执行命令vcpkg install icu:x64-windows-static(32位环境替换为x86-windows-static)
    • 用vcpkg list icu确认安装状态,输出需包含icu:x64-windows-static
  2. 定位ICU安装路径:

    • 找到你的vcpkg根目录(默认一般是C:\vcpkg)
    • ICU头文件路径:${VCPKG_ROOT}/installed/x64-windows-static/include
    • ICU静态库路径:${VCPKG_ROOT}/installed/x64-windows-static/lib(包含icuuc.lib、icuin.lib、icuio.lib、icudt.lib等文件)

方式一:手动指定ICU路径(无需vcpkg工具链)

在项目根目录创建CMakeLists.txt,替换VCPKG_ROOT为你的实际路径:

cmake_minimum_required(VERSION 3.15)
project(ICU_Static_Demo)

# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 手动指定ICU路径
set(VCPKG_ROOT "C:/vcpkg")
set(ICU_INCLUDE_DIR "${VCPKG_ROOT}/installed/x64-windows-static/include")
set(ICU_LIB_DIR "${VCPKG_ROOT}/installed/x64-windows-static/lib")

# 添加头文件目录
include_directories(${ICU_INCLUDE_DIR})

# 生成可执行文件并链接静态库
add_executable(icu_demo main.cpp)
target_link_libraries(icu_demo 
    ${ICU_LIB_DIR}/icuuc.lib
    ${ICU_LIB_DIR}/icuin.lib
    ${ICU_LIB_DIR}/icuio.lib
    ${ICU_LIB_DIR}/icudt.lib
)

# 静态链接必须定义的宏
target_compile_definitions(icu_demo PRIVATE ICU_STATIC)

编译步骤(cmd执行)

  1. 进入项目根目录,创建构建目录:
    mkdir build && cd build
    
  2. 生成构建文件(使用MinGW工具链,无需VS):
    cmake -S .. -B . -G "MinGW Makefiles"
    
  3. 编译项目:
    cmake --build . --config Release
    

方式二:使用vcpkg Toolchain(更简洁)

让CMake自动识别vcpkg安装的ICU,无需手动写路径。

1. 编写CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
project(ICU_Static_Demo)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 查找ICU静态库组件
find_package(ICU REQUIRED COMPONENTS uc in io dt)

add_executable(icu_demo main.cpp)
# 链接ICU静态库目标
target_link_libraries(icu_demo PRIVATE ICU::uc ICU::in ICU::io ICU::dt)
# 静态链接宏定义
target_compile_definitions(icu_demo PRIVATE ICU_STATIC)

2. VSCode配置(可选)

在项目的.vscode/settings.json中添加以下内容,让VSCode的CMake插件自动使用vcpkg工具链:

{
    "cmake.configureSettings": {
        "CMAKE_TOOLCHAIN_FILE": "C:/vcpkg/scripts/buildsystems/vcpkg.cmake",
        "VCPKG_TARGET_TRIPLET": "x64-windows-static"
    }
}

3. 编译步骤(cmd执行)

mkdir build && cd build
cmake -S .. -B . -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build . --config Release

直接用g++编译(无需CMake)

如果不想用CMake,直接在cmd执行以下命令(替换路径为你的实际路径):

g++ main.cpp -o icu_demo.exe -IC:/vcpkg/installed/x64-windows-static/include -LC:/vcpkg/installed/x64-windows-static/lib -licuuc -licuin -licuio -licudt -DICU_STATIC

内容的提问来源于stack exchange,提问作者yes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:40:39