Reputation: 11
Building on a ARM64 Macbook Pro (macos: sonoma 14.5) using Protobuf v27.2 in CLion. Built and installed protobuf per the Linux instructions:
cd protobuf [source directory]
cmake .
cmake --build --parallel 10
ctest --verbose [all tests passed]
sudo cmake --install . [libraries in /usr/local/lib and incudes in /usr/local/include]
proto Person class:
syntax = "proto3";
message Person {
optional string name = 1;
optional int32 id = 2;
optional string email = 3;
}
CMakeList.txt:
cmake_minimum_required(VERSION 3.28)
project(protobuf)
set(CMAKE_CXX_STANDARD 20)
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
link_libraries(libprotobuf.a)
add_executable(protobuf main.cpp Person.pb.cc Person.pb.h)
main.cpp:
#include <iostream>
#include "Person.pb.h"
int main() {
std::cout << "Hello, World!" << std::endl;
Person person;
return 0;
}
During the link there are a number of unresolved variables associated with Person.pb.cc, Person.pb.h and main.cpp. What libraries and include files are missing from the CMakeList.txt file? Build Error:
====================[ Build | protobuf | Debug ]================================
/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake --build /Users/achrisgrimes/CLionProjects/demo/protobuf/cmake-build-debug --target protobuf -j 8
[1/1] Linking CXX executable protobuf
FAILED: protobuf
: && /usr/local/bin/g++ -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/protobuf.dir/main.cpp.o CMakeFiles/protobuf.dir/Person.pb.cc.o -o protobuf -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lprotobuf && :
g++: warning: this compiler does not support Arm64 ('-arch' option ignored)
Undefined symbols for architecture x86_64:
"__ZN4absl12lts_2024011612log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvNS0_11string_viewE", referenced from:
__ZN4absl12lts_2024011612log_internal10LogMessagelsILi19EEERS2_RAT__Kc in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal10LogMessagelsImLi0EEERS2_RKT_", referenced from:
__ZN4absl12lts_2024011612log_internal10LogMessagelsEm in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal15LogMessageFatalC1EPKciNS0_11string_viewE", referenced from:
__ZN6google8protobuf8internal12ArenaAlignAsEm in Person.pb.cc.o
__ZN6google8protobuf8internal12ArenaAlignAsEm in Person.pb.cc.o
__ZNK6google8protobuf11MessageLite9ClassData4fullEv in Person.pb.cc.o
__ZN6Person10SharedDtorEv in Person.pb.cc.o
__ZN6Person9MergeImplERN6google8protobuf11MessageLiteERKS2_ in Person.pb.cc.o
__ZN6Person12InternalSwapEPS_ in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal15LogMessageFatalD1Ev", referenced from:
__ZN6google8protobuf8internal12ArenaAlignAsEm in Person.pb.cc.o
__ZN6google8protobuf8internal12ArenaAlignAsEm in Person.pb.cc.o
__ZN6google8protobuf8internal12ArenaAlignAsEm in Person.pb.cc.o
__ZNK6google8protobuf11MessageLite9ClassData4fullEv in Person.pb.cc.o
__ZNK6google8protobuf11MessageLite9ClassData4fullEv in Person.pb.cc.o
__ZN6Person10SharedDtorEv in Person.pb.cc.o
__ZN6Person10SharedDtorEv in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIPKvS4_EEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc", referenced from:
__ZN4absl12lts_2024011612log_internal12Check_NEImplIPK6PersonPS3_EEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_RKT0_PKc in Person.pb.cc.o
__ZN4absl12lts_2024011612log_internal12Check_EQImplIPN6google8protobuf5ArenaES6_EEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_RKT0_PKc in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal21CheckOpMessageBuilder7ForVar2Ev", referenced from:
__ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIyxEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal21CheckOpMessageBuilder9NewStringB5cxx11Ev", referenced from:
__ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIyxEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc in Person.pb.cc.o
"__ZN4absl12lts_2024011612log_internal21CheckOpMessageBuilderC1EPKc", referenced from:
__ZN4absl12lts_2024011612log_internal17MakeCheckOpStringIyxEEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_T0_PKc in Person.pb.cc.o
"__ZN6google8protobuf2io19EpsCopyOutputStream30WriteStringMaybeAliasedOutlineEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh", referenced from:
__ZN6google8protobuf2io19EpsCopyOutputStream23WriteStringMaybeAliasedEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh in Person.pb.cc.o
"__ZN6google8protobuf8internal14ArenaStringPtr3SetEN4absl12lts_2024011611string_viewEPNS0_5ArenaE", referenced from:
__ZN6google8protobuf8internal14ArenaStringPtrC1EPNS0_5ArenaE in Person.pb.cc.o
"__ZN6google8protobuf8internal14ArenaStringPtr3SetIJEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_5ArenaE", referenced from:
__ZN6Person9MergeImplERN6google8protobuf11MessageLiteERKS2_ in Person.pb.cc.o
__ZN6Person9MergeImplERN6google8protobuf11MessageLiteERKS2_ in Person.pb.cc.o
"__ZN6google8protobuf8internal26fixed_address_empty_stringB5cxx11E", referenced from:
__ZN6google8protobuf8internal14ArenaStringPtrC1EPNS0_5ArenaE in Person.pb.cc.o
__Person_default_instance_ in Person.pb.cc.o
__Person_default_instance_ in Person.pb.cc.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Upvotes: 0
Views: 104