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

Mac平台CMake项目链接Optick时遇UTF-8无效错误求助

Mac平台Ninja编译Optick时链接阶段出现UTF-8编码错误

我有一个依赖多个第三方库的跨平台CMake项目,Windows上编译构建正常,但在Mac平台用Ninja编译时,链接Optick环节出现如下错误:

[949/972] Linking CXX shared library Engine/External/optick/libOptickCore.dylib
FAILED: Engine/External/optick/libOptickCore.dylib 
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -x objective-c++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -dynamiclib -Wl,-headerpad_max_install_names  -o Engine/External/optick/libOptickCore.dylib -install_name @rpath/libOptickCore.dylib Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_capi.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_core.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_gpu.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_gpu.d3d12.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_gpu.vulkan.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_message.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_miniz.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_serialization.cpp.o Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_server.cpp.o   && :
Engine/External/optick/CMakeFiles/OptickCore.dir/src/optick_capi.cpp.o:1:1: error: source file is not valid UTF-8
<CF><FA><ED><FE><U+000C><U+0000><U+0000><U+0001><U+0000><U+0000><U+0000><U+0000><U+0001><U+0000><U+0000><U+0000><U+0004><U+0000><U+0000><U+0000><U+0008><U+0002><U+0000><U+0000><U+0000> <U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0019><U+0000><U+0000><U+0000><88><U+0001><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>H
^

该错误出现在OptickCore目标生成的所有目标文件上。


CMake配置信息

项目通过CMake生成,配置过程正常:

The C compiler identification is AppleClang 14.0.0.14000029
The CXX compiler identification is AppleClang 14.0.0.14000029
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
Detecting C compile features
Detecting C compile features - done
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
Detecting CXX compile features
Detecting CXX compile features - done

项目配置细节

  • 在CMake脚本中,通过target_link_libraries以PUBLIC方式链接OptickCore
  • 将Optick的CMakeLists.txt添加为子目录

文件编码排查

  • 源码文件编码为us-ascii:
matthewloveday@192 src % file -I optick_capi.cpp
optick_capi.cpp: text/x-c; charset=us-ascii
  • 目标文件编码为二进制:
matthewloveday@192 src % file -I optick_capi.cpp.o     
optick_capi.cpp.o: application/x-mach-binary; charset=binary

从未遇到过此类错误,不知从何入手,恳请各位提供帮助!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:05:26