Closed Frankdwu closed 7 months ago
上报前请检查
[ ] 我遇到的问题没有其他人在 issue 里提到过: 有人提到过,https://github.com/rime/weasel/issues/739 ,但是没看到解决
[ ] 我的小狼毫版本于 rime/weasel 下载:build 版本0.15.0
使用官网的步骤编译,但是在链接的时候遇到问题,没看出来哪个地方引用了这些函数,也没看到这些函数在哪里定义了。
https://github.com/rime/weasel/blob/master/INSTALL.md
Link: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\HostX86\x86\link.exe /ERRORREP ORT:QUEUE /OUT:"D:\src\weasel\output\WeaselServer.exe" /NOLOGO /LIBPATH:D:\src\weasel\lib /LIBPATH:D:\src\depend\b oost_1_84_0\stage\lib /LIBPATH:D:\src\weasel\librime\build\lib\Release /LIBPATH:"D:\Test\vcpkg\installed\x86-window s\lib" /LIBPATH:"D:\Test\vcpkg\installed\x86-windows\lib\manual-link" imm32.lib usp10.lib rime.lib kernel32.lib user 32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbcc p32.lib "D:\Test\vcpkg\installed\x86-windows\lib*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /manifestinput:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\In clude\Manifest\PerMonitorHighDPIAware.manifest" /DEBUG /PDB:"D:\src\weasel\output\WeaselServer.pdb" /SUBSYSTEM:WINDO WS /LTCG /LTCGOUT:"Release\WeaselServer.iobj" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\src\weasel\output\WeaselSe rver.lib" /MACHINE:X86 /SAFESEH Release\WeaselServer.res Release\stdafx.obj Release\SystemTraySDK.obj Release\WeaselServer.obj Release\WeaselServerApp.obj Release\WeaselService.obj Release\WeaselTrayIcon.obj D:\src\weasel\RimeWithWeasel\Release\RimeWithWeasel.obj D:\src\weasel\RimeWithWeasel\Release\stdafx.obj D:\src\weasel\RimeWithWeasel\Release\WeaselUtility.obj D:\src\weasel\WeaselUI\Release\DirectWriteResources.obj D:\src\weasel\WeaselUI\Release\FullScreenLayout.obj D:\src\weasel\WeaselUI\Release\GdiplusBlur.obj D:\src\weasel\WeaselUI\Release\HorizontalLayout.obj D:\src\weasel\WeaselUI\Release\Layout.obj D:\src\weasel\WeaselUI\Release\StandardLayout.obj D:\src\weasel\WeaselUI\Release\stdafx.obj D:\src\weasel\WeaselUI\Release\VerticalLayout.obj D:\src\weasel\WeaselUI\Release\VHorizontalLayout.obj D:\src\weasel\WeaselUI\Release\WeaselPanel.obj D:\src\weasel\WeaselUI\Release\WeaselUI.obj D:\src\weasel\WeaselIPCServer\Release\SecurityAttribute.obj D:\src\weasel\WeaselIPCServer\Release\stdafx.obj D:\src\weasel\WeaselIPCServer\Release\WeaselServerImpl.obj D:\src\weasel\WeaselIPC\Release\Configurator.obj D:\src\weasel\WeaselIPC\Release\Deserializer.obj D:\src\weasel\WeaselIPC\Release\PipeChannel.obj D:\src\weasel\WeaselIPC\Release\ResponseParser.obj D:\src\weasel\WeaselIPC\Release\stdafx.obj D:\src\weasel\WeaselIPC\Release\Styler.obj D:\src\weasel\WeaselIPC\Release\WeaselClientImpl.obj D:\src\weasel\WeaselIPC\Release\ActionLoader.obj D:\src\weasel\WeaselIPC\Release\Committer.obj D:\src\weasel\WeaselIPC\Release\ContextUpdater.obj 正在创建库 D:\src\weasel\output\WeaselServer.lib 和对象 D:\src\weasel\output\WeaselServer.exp RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetProperty [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetup [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetNotificationHandler [D:\src\weasel\WeaselServer\WeaselServer.vcx proj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeInitialize [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeStartMaintenance [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigOpen [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetString [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetBool [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetInt [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigClose [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFinalize [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFindSession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeCreateSession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetStatus [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeStatus [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeDestroySession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeProcessKey [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetOption [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetOption [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeCommitComposition [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeClearComposition [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _rime_get_api [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetProperty [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSchemaOpen [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigBeginMap [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetCommit [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeCommit [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetContext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeContext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigBeginList [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigNext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigEnd [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] D:\src\weasel\output\WeaselServer.exe : fatal error LNK1120: 32 个无法解析的外部命令 [D:\src\weasel\WeaselServer\WeaselServer.v cxproj]
使用的env.bat file如下 rem Customize your build environment and save the modified copy to env.bat echo env_bat is called
set WEASEL_ROOT=%CD%
rem REQUIRED: path to Boost source directory set BOOST_ROOT=D:\src\depend\boost_1_84_0
echo BOOST_ROOT=%BOOST_ROOT% echo boost has been set
rem OPTIONAL: Visual Studio version and platform toolset set BJAM_TOOLSET=msvc-14.3 set PLATFORM_TOOLSET=v143
rem OPTIONAL: path to additional build tools rem set DEVTOOLS_PATH=%ProgramFiles%\Git\cmd;%ProgramFiles%\Git\usr\bin;%ProgramFiles%\CMake\bin;
set ARCH=Win32
跟着github action 的步骤即可解决问题
上报前请检查
[ ] 我遇到的问题没有其他人在 issue 里提到过: 有人提到过,https://github.com/rime/weasel/issues/739 ,但是没看到解决
[ ] 我的小狼毫版本于 rime/weasel 下载:build 版本0.15.0
使用官网的步骤编译,但是在链接的时候遇到问题,没看出来哪个地方引用了这些函数,也没看到这些函数在哪里定义了。
https://github.com/rime/weasel/blob/master/INSTALL.md
Link: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\HostX86\x86\link.exe /ERRORREP ORT:QUEUE /OUT:"D:\src\weasel\output\WeaselServer.exe" /NOLOGO /LIBPATH:D:\src\weasel\lib /LIBPATH:D:\src\depend\b oost_1_84_0\stage\lib /LIBPATH:D:\src\weasel\librime\build\lib\Release /LIBPATH:"D:\Test\vcpkg\installed\x86-window s\lib" /LIBPATH:"D:\Test\vcpkg\installed\x86-windows\lib\manual-link" imm32.lib usp10.lib rime.lib kernel32.lib user 32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbcc p32.lib "D:\Test\vcpkg\installed\x86-windows\lib*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /manifestinput:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\In clude\Manifest\PerMonitorHighDPIAware.manifest" /DEBUG /PDB:"D:\src\weasel\output\WeaselServer.pdb" /SUBSYSTEM:WINDO WS /LTCG /LTCGOUT:"Release\WeaselServer.iobj" /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\src\weasel\output\WeaselSe rver.lib" /MACHINE:X86 /SAFESEH Release\WeaselServer.res Release\stdafx.obj Release\SystemTraySDK.obj Release\WeaselServer.obj Release\WeaselServerApp.obj Release\WeaselService.obj Release\WeaselTrayIcon.obj D:\src\weasel\RimeWithWeasel\Release\RimeWithWeasel.obj D:\src\weasel\RimeWithWeasel\Release\stdafx.obj D:\src\weasel\RimeWithWeasel\Release\WeaselUtility.obj D:\src\weasel\WeaselUI\Release\DirectWriteResources.obj D:\src\weasel\WeaselUI\Release\FullScreenLayout.obj D:\src\weasel\WeaselUI\Release\GdiplusBlur.obj D:\src\weasel\WeaselUI\Release\HorizontalLayout.obj D:\src\weasel\WeaselUI\Release\Layout.obj D:\src\weasel\WeaselUI\Release\StandardLayout.obj D:\src\weasel\WeaselUI\Release\stdafx.obj D:\src\weasel\WeaselUI\Release\VerticalLayout.obj D:\src\weasel\WeaselUI\Release\VHorizontalLayout.obj D:\src\weasel\WeaselUI\Release\WeaselPanel.obj D:\src\weasel\WeaselUI\Release\WeaselUI.obj D:\src\weasel\WeaselIPCServer\Release\SecurityAttribute.obj D:\src\weasel\WeaselIPCServer\Release\stdafx.obj D:\src\weasel\WeaselIPCServer\Release\WeaselServerImpl.obj D:\src\weasel\WeaselIPC\Release\Configurator.obj D:\src\weasel\WeaselIPC\Release\Deserializer.obj D:\src\weasel\WeaselIPC\Release\PipeChannel.obj D:\src\weasel\WeaselIPC\Release\ResponseParser.obj D:\src\weasel\WeaselIPC\Release\stdafx.obj D:\src\weasel\WeaselIPC\Release\Styler.obj D:\src\weasel\WeaselIPC\Release\WeaselClientImpl.obj D:\src\weasel\WeaselIPC\Release\ActionLoader.obj D:\src\weasel\WeaselIPC\Release\Committer.obj D:\src\weasel\WeaselIPC\Release\ContextUpdater.obj 正在创建库 D:\src\weasel\output\WeaselServer.lib 和对象 D:\src\weasel\output\WeaselServer.exp RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetProperty [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetup [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetNotificationHandler [D:\src\weasel\WeaselServer\WeaselServer.vcx proj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeInitialize [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeStartMaintenance [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigOpen [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetString [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetBool [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigGetInt [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigClose [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFinalize [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFindSession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeCreateSession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetStatus [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeStatus [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeDestroySession [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeProcessKey [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetOption [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetOption [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeCommitComposition [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeClearComposition [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _rime_get_api [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSetProperty [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeSchemaOpen [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigBeginMap [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetCommit [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeCommit [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeGetContext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeFreeContext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigBeginList [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigNext [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] RimeWithWeasel.obj : error LNK2001: 无法解析的外部符号 _RimeConfigEnd [D:\src\weasel\WeaselServer\WeaselServer.vcxproj] D:\src\weasel\output\WeaselServer.exe : fatal error LNK1120: 32 个无法解析的外部命令 [D:\src\weasel\WeaselServer\WeaselServer.v cxproj]
使用的env.bat file如下 rem Customize your build environment and save the modified copy to env.bat echo env_bat is called
set WEASEL_ROOT=%CD%
rem REQUIRED: path to Boost source directory set BOOST_ROOT=D:\src\depend\boost_1_84_0
echo BOOST_ROOT=%BOOST_ROOT% echo boost has been set
rem OPTIONAL: Visual Studio version and platform toolset set BJAM_TOOLSET=msvc-14.3 set PLATFORM_TOOLSET=v143
rem OPTIONAL: path to additional build tools rem set DEVTOOLS_PATH=%ProgramFiles%\Git\cmd;%ProgramFiles%\Git\usr\bin;%ProgramFiles%\CMake\bin;