Piccolo icon indicating copy to clipboard operation
Piccolo copied to clipboard

m1 pro build PiccoloParser 时报链接错误

Open 37wjy opened this issue 3 years ago • 6 comments

Describe the bug | Bug描述

在构建PiccoloParser时会报错

日志

[main] Building folder: Piccolo PiccoloParser [build] Starting build [proc] Executing command: /opt/homebrew/bin/cmake --build /Users/bole/Desktop/Piccolo/build --config Debug --target PiccoloParser -j 10 -- [build] [ 0%] Linking CXX executable ../../../../engine/bin/PiccoloParser [build] ld: warning: ignoring file ../../../../engine/source/meta_parser/3rd_party/LLVM/bin/macOS/libclang.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64 [build] Undefined symbols for architecture arm64: [build] "_clang_Cursor_getSpellingNameRange", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_createIndex", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_createTranslationUnitFromSourceFile", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_disposeIndex", referenced from: [build] MetaParser::~MetaParser() in parser.cpp.o [build] "_clang_disposeString", referenced from: [build] Utils::toString(CXString const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&) in meta_utils.cpp.o [build] "_clang_disposeTranslationUnit", referenced from: [build] MetaParser::~MetaParser() in parser.cpp.o [build] "_clang_getArgType", referenced from: [build] CursorType::GetArgument(unsigned int) const in cursor_type.cpp.o [build] "_clang_getCString", referenced from: [build] Utils::toString(CXString const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&) in meta_utils.cpp.o [build] "_clang_getCanonicalType", referenced from: [build] CursorType::GetCanonicalType() const in cursor_type.cpp.o [build] "_clang_getCursorDisplayName", referenced from: [build] Cursor::getDisplayName() const in cursor.cpp.o [build] "_clang_getCursorSpelling", referenced from: [build] Cursor::getSpelling() const in cursor.cpp.o [build] "_clang_getCursorType", referenced from: [build] Cursor::getType() const in cursor.cpp.o [build] "_clang_getFileLocation", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getFileName", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getNumArgTypes", referenced from: [build] CursorType::GetArgumentCount() const in cursor_type.cpp.o [build] "_clang_getRangeStart", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getTranslationUnitCursor", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_getTypeDeclaration", referenced from: [build] CursorType::GetDeclaration() const in cursor_type.cpp.o [build] "_clang_getTypeSpelling", referenced from: [build] CursorType::GetDisplayName() const in cursor_type.cpp.o [build] "_clang_isConstQualifiedType", referenced from: [build] CursorType::IsConst() const in cursor_type.cpp.o [build] "_clang_isCursorDefinition", referenced from: [build] Cursor::isDefinition() const in cursor.cpp.o [build] "_clang_visitChildren", referenced from: [build] Cursor::getChildren() const in cursor.cpp.o [build] Cursor::visitChildren(CXChildVisitResult ()(CXCursor, CXCursor, void), void*) in cursor.cpp.o [build] ld: symbol(s) not found for architecture arm64 [build] clang: error: linker command failed with exit code 1 (use -v to see invocation) [build] make[3]: *** [../engine/bin/PiccoloParser] Error 1 [build] make[2]: *** [engine/source/meta_parser/CMakeFiles/PiccoloParser.dir/all] Error 2 [build] make[1]: *** [engine/source/meta_parser/CMakeFiles/PiccoloParser.dir/rule] Error 2 [build] make: *** [PiccoloParser] Error 2 [build] Build finished with exit code 2

Desktop | 桌面环境

Model Identifier: MacBookPro18,3 Chip: Apple M1 Pro Total Number of Cores: 8 (6 performance and 2 efficiency) Memory: 16 GB System Firmware Version: 7459.121.3 OS Loader Version: 7459.121.3 Compiler: Clang 13.1.6 arm64-apple-darwin21.5.0

37wjy avatar Jul 03 '22 04:07 37wjy

我也遇到了同样的问题,,,大佬解决了吗?

CN1Smile avatar Jul 04 '22 12:07 CN1Smile

Describe the bug | Bug描述

在构建PiccoloParser时会报错

日志

[main] Building folder: Piccolo PiccoloParser [build] Starting build [proc] Executing command: /opt/homebrew/bin/cmake --build /Users/bole/Desktop/Piccolo/build --config Debug --target PiccoloParser -j 10 -- [build] [ 0%] Linking CXX executable ../../../../engine/bin/PiccoloParser [build] ld: warning: ignoring file ../../../../engine/source/meta_parser/3rd_party/LLVM/bin/macOS/libclang.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64 [build] Undefined symbols for architecture arm64: [build] "_clang_Cursor_getSpellingNameRange", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_createIndex", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_createTranslationUnitFromSourceFile", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_disposeIndex", referenced from: [build] MetaParser::~MetaParser() in parser.cpp.o [build] "_clang_disposeString", referenced from: [build] Utils::toString(CXString const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&) in meta_utils.cpp.o [build] "_clang_disposeTranslationUnit", referenced from: [build] MetaParser::~MetaParser() in parser.cpp.o [build] "_clang_getArgType", referenced from: [build] CursorType::GetArgument(unsigned int) const in cursor_type.cpp.o [build] "_clang_getCString", referenced from: [build] Utils::toString(CXString const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&) in meta_utils.cpp.o [build] "_clang_getCanonicalType", referenced from: [build] CursorType::GetCanonicalType() const in cursor_type.cpp.o [build] "_clang_getCursorDisplayName", referenced from: [build] Cursor::getDisplayName() const in cursor.cpp.o [build] "_clang_getCursorSpelling", referenced from: [build] Cursor::getSpelling() const in cursor.cpp.o [build] "_clang_getCursorType", referenced from: [build] Cursor::getType() const in cursor.cpp.o [build] "_clang_getFileLocation", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getFileName", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getNumArgTypes", referenced from: [build] CursorType::GetArgumentCount() const in cursor_type.cpp.o [build] "_clang_getRangeStart", referenced from: [build] Cursor::getSourceFile() const in cursor.cpp.o [build] "_clang_getTranslationUnitCursor", referenced from: [build] MetaParser::parse() in parser.cpp.o [build] "_clang_getTypeDeclaration", referenced from: [build] CursorType::GetDeclaration() const in cursor_type.cpp.o [build] "_clang_getTypeSpelling", referenced from: [build] CursorType::GetDisplayName() const in cursor_type.cpp.o [build] "_clang_isConstQualifiedType", referenced from: [build] CursorType::IsConst() const in cursor_type.cpp.o [build] "clang_isCursorDefinition", referenced from: [build] Cursor::isDefinition() const in cursor.cpp.o [build] "clang_visitChildren", referenced from: [build] Cursor::getChildren() const in cursor.cpp.o [build] Cursor::visitChildren(CXChildVisitResult ()(CXCursor, CXCursor, void), void*) in cursor.cpp.o [build] ld: symbol(s) not found for architecture arm64 [build] clang: error: linker command failed with exit code 1 (use -v to see invocation) [build] make[3]: *** [../engine/bin/PiccoloParser] Error 1 [build] make[2]: *** [engine/source/meta_parser/CMakeFiles/PiccoloParser.dir/all] Error 2 [build] make[1]: *** [engine/source/meta_parser/CMakeFiles/PiccoloParser.dir/rule] Error 2 [build] make: *** [PiccoloParser] Error 2 [build] Build finished with exit code 2

Desktop | 桌面环境

Model Identifier: MacBookPro18,3 Chip: Apple M1 Pro Total Number of Cores: 8 (6 performance and 2 efficiency) Memory: 16 GB System Firmware Version: 7459.121.3 OS Loader Version: 7459.121.3 Compiler: Clang 13.1.6 arm64-apple-darwin21.5.0

第一步的cmake加上 -DCMAKE_OSX_ARCHITECTURES=x86_64 ,生成amd64的项目。后面在xcode中编译有些 warning (我的mac os还是11.3,但editor是跑起来了。macbook pro m1 2020 13寸

kertL avatar Jul 05 '22 04:07 kertL

这个可以编译出arm64的库来替换吗 不太清楚这个是从哪个编译的

37wjy avatar Jul 05 '22 07:07 37wjy

我也有相同的问题

Fan-Xiaohua avatar Jul 05 '22 09:07 Fan-Xiaohua

这个可以编译出arm64的库来替换吗 不太清楚这个是从哪个编译的

不用x86_64的情况下,找到自己机器上的libclang.dylib文件,替换掉 Piccolo/engine/source/meta_parser/3rd_party/LLVM/bin/macOS/ 下的x86_64文件,居然编译过了,editor也能跑,在活动监视器里看是个 "Apple"进程。

下面的命令可以找到libclang.dylib

mdfind -name libclang.dylib

kertL avatar Jul 05 '22 11:07 kertL

https://github.com/BoomingTech/Piccolo/pull/326 fixed this problem. Pending on merge.

snakeeye avatar Aug 20 '22 02:08 snakeeye