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

使用g++链接静态/动态库生成exe时出现未定义符号错误

链接STK静态库时的未定义符号问题及解决方法

尝试将目标文件与STK静态库、动态库链接生成可执行文件时,出现大量未定义符号错误,即使移除-ldsound参数(dsound.lib与项目文件同目录)也无法解决。

执行的g++命令:

g++ -static d:/lib/libstk.a new.o -ldsound -o new.exe

错误信息示例:

ld.lld: error: undefined symbol: __declspec(dllimport) select
>>> referenced by libstk.a(Messager.cpp.obj):(socketHandler)

ld.lld: error: undefined symbol: __WSAFDIsSet
>>> referenced by libstk.a(Messager.cpp.obj):(socketHandler)
>>> referenced by libstk.a(Messager.cpp.obj):(socketHandler)

ld.lld: error: undefined symbol: __declspec(dllimport) WSAGetLastError
>>> referenced by libstk.a(Messager.cpp.obj):(socketHandler)

ld.lld: error: undefined symbol: __declspec(dllimport) CoInitialize
>>> referenced by libstk.a(RtAudio.cpp.obj):(RtAudio::openRtApi(RtAudio::Api))
>>> referenced by libstk.a(RtAudio.cpp.obj):(RtApiDs::RtApiDs())

ld.lld: error: undefined symbol: __declspec(dllimport) CoUninitialize
>>> referenced by libstk.a(RtAudio.cpp.obj):(RtApiDs::~RtApiDs())

.............and so on ..................

运行配置脚本后生成了stk-config.cmake文件,内容如下:

# Create imported target stk
add_library(stk STATIC IMPORTED)

set_target_properties(stk PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  INTERFACE_LINK_LIBRARIES "Threads::Threads;winmm;ole32;wsock32;dsound"
)

方法一:直接修正g++命令行

从stk-config.cmake的INTERFACE_LINK_LIBRARIES字段可知,STK依赖多个系统库,只需把这些库添加到命令行即可:

g++ -static d:/lib/libstk.a new.o -lwinmm -lole32 -lwsock32 -ldsound -o new.exe

若仍报错,可调整库的顺序,将依赖库放在STK静态库之后。

方法二:使用CMake构建项目

若想利用生成的stk-config.cmake,可通过以下步骤用CMake管理构建:

  1. 在项目目录创建CMakeLists.txt,内容如下:
cmake_minimum_required(VERSION 3.10)
project(new_exe)

# 指定stk-config.cmake所在目录
set(CMAKE_PREFIX_PATH "d:/lib")
# 加载STK配置
find_package(stk REQUIRED)

# 创建可执行文件
add_executable(new.exe new.o)

# 链接STK库(自动引入所有依赖)
target_link_libraries(new.exe PRIVATE stk)
  1. 执行构建命令:
mkdir build && cd build
cmake .. -G "MinGW Makefiles"
mingw32-make

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:02:41