-
Notifications
You must be signed in to change notification settings - Fork 129
Open
Description
Steps followed after cloning the project:
mkdir build && cd buildin the repo rootcmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_EXE_LINKER_FLAGS="$(pkg-config --libs protobuf)"make libxml2_example
Generated Error
[ 72%] Built target protobuf-mutator-libfuzzer
[ 77%] Running cpp protocol buffer compiler on xml.proto
[ 81%] Building CXX object examples/xml/CMakeFiles/protobuf-mutator-xml.dir/xml_writer.cc.o
[ 86%] Building CXX object examples/xml/CMakeFiles/protobuf-mutator-xml.dir/xml.pb.cc.o
[ 90%] Linking CXX static library libprotobuf-mutator-xml.a
[ 90%] Built target protobuf-mutator-xml
[ 95%] Building CXX object examples/libxml2/CMakeFiles/libxml2_example.dir/libxml2_example.cc.o
[100%] Linking CXX executable libxml2_example
ld: warning: ignoring duplicate libraries: '-lc++'
ld: library '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/lib/darwin/libclang_rt.fuzzer_osx.a' not found
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [examples/libxml2/libxml2_example] Error 1
make[2]: *** [examples/libxml2/CMakeFiles/libxml2_example.dir/all] Error 2
make[1]: *** [examples/libxml2/CMakeFiles/libxml2_example.dir/rule] Error 2
make: *** [libxml2_example] Error 2- This is expected as the LLVM build from XCode SDK doesn't have LibFuzzer support.
Workaround
- However the workaround for this would be to install LLVM using
brew install llvm@17. I chose version 17 as the other versions of LLVM has undefined symbols error (tried LLVM 20 and 21) and ran the above commands withCCandCXXvariables. - The error I get is:
ld: warning: building for macOS-16.0, but linking with dylib '/opt/homebrew/opt/protobuf/lib/libprotobuf.33.1.0.dylib' which was built for newer version 26.0I have tried a lot of workarounds for this but there is some or the other error. How can I compile it on MacOS?
Metadata
Metadata
Assignees
Labels
No labels