fix: 修复 Windows Qt 5.12 MinGW 多个编译/链接问题
1. onHotkeyEvent 多重定义: 头文件声明加 #ifdef Q_OS_WIN 保护 MOC 会扫描头文件生成桩函数,与 cpp 中 #ifdef 实现冲突 2. PortAudio 链接失败: 平台分离库路径,Windows 查找 lib/win64 子目录 原 libportaudio.a 是 Linux 编译的归档,不适用于 MinGW Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
80aec75f8f
commit
68b512d5cd
@ -32,9 +32,18 @@ endif()
|
||||
# ----------------------------------------------------------------------------
|
||||
set(PORTAUDIO_ROOT "${THIRD_PARTY_DIR}/portaudio")
|
||||
|
||||
# Windows 需要 MinGW 编译的版本,与 Linux 分开存放
|
||||
if(WIN32)
|
||||
set(PORTAUDIO_LIB_PATH "${PORTAUDIO_ROOT}/lib/win64")
|
||||
elseif(APPLE)
|
||||
set(PORTAUDIO_LIB_PATH "${PORTAUDIO_ROOT}/lib/macos")
|
||||
else()
|
||||
set(PORTAUDIO_LIB_PATH "${PORTAUDIO_ROOT}/lib")
|
||||
endif()
|
||||
|
||||
find_library(PORTAUDIO_LIB
|
||||
NAMES portaudio libportaudio
|
||||
PATHS "${PORTAUDIO_ROOT}/lib"
|
||||
PATHS "${PORTAUDIO_LIB_PATH}"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
find_path(PORTAUDIO_INCLUDE_DIR
|
||||
|
||||
@ -48,8 +48,10 @@ signals:
|
||||
/** @brief 初始化失败 */
|
||||
void error(const QString& message);
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
/** @brief 处理 WM_HOTKEY 事件(由原生事件过滤器调用) */
|
||||
void onHotkeyEvent(int hotkeyId);
|
||||
#endif
|
||||
|
||||
private:
|
||||
struct Impl;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user