Undefined symbols in QT project on OSX

101 views
Skip to first unread message

Tamilano

unread,
Aug 10, 2015, 1:29:19 PM8/10/15
to Protocol Buffers
Hey there!

I have a qt project and compiled protobuf as described here:
$ make
$ make check
$ make install

I'm using the file: /usr/local/lib/libprotobuf-lite.10.dylib .

Compile output is:

22:43:37: Running steps for project xxx...

22:43:37: Configuration unchanged, skipping qmake step.

22:43:37: Starting: "/usr/bin/make"

Makefile:1947: warning: overriding commands for target `build/md5.o'

Makefile:1853: warning: ignoring old commands for target `build/md5.o'

Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)

Target: x86_64-apple-darwin14.1.0

Thread model: posix

"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -headerpad_max_install_names -macosx_version_min 10.7.0 -o bin/xxx.app/Contents/MacOS/xxx -lcrt1.10.6.o -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -rpath /Users/yyy/Qt5.4.2/5.4/clang_64/lib build/MACHIPC.o build/main.o build/crashhandler.o build/minidump_file_writer.o build/string_conversion.o build/convert_UTF.o build/md5.o build/exception_handler.o build/minidump_generator.o build/dynamic_images.o build/string_utilities.o build/file_id.o build/macho_id.o build/macho_utilities.o build/macho_walker.o build/md5.o build/breakpad_nlist_64.o build/crash_generation_client.o build/client.pb.o build/server.pb.o build/lobbymodel.o build/lobby.o build/steamservers.o build/steamstats.o build/person.o build/personmodel.o build/mastertcpclient.o build/messagemodel.o build/application.o build/udkinput.o build/servermodel.o build/sortfilterproxymodel.o build/avatarimageprovider.o build/steamserverlistresponse.o build/qrc_qml.o build/qrc_main.o build/qrc_options.o build/qrc_images.o build/qrc_sounds.o build/moc_lobbymodel.o build/moc_lobby.o build/moc_steamservers.o build/moc_steamstats.o build/moc_person.o build/moc_personmodel.o build/moc_mastertcpclient.o build/moc_lobbyspotmodel.o build/moc_gameprocess.o build/moc_messagemodel.o build/moc_playermodel.o build/moc_application.o build/moc_udkinput.o build/moc_servermodel.o build/moc_sortfilterproxymodel.o build/moc_steamserverlistresponse.o /Users/yyy/programs/xxx/libs/osx/libsteam_api.dylib /Users/yyy/programs/xxx/libs/osx/libprotobuf-lite.10.dylib -framework Carbon -framework Cocoa -framework QtWebEngine -framework QtQuick -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework QtQml -framework QtNetwork -framework QtWidgets -framework OpenGL -framework AGL -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/lib/darwin/libclang_rt.osx.a -F/Users/yyy/Qt5.4.2/5.4/clang_64/lib

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -v -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -stdlib=libc++ -mmacosx-version-min=10.7 -Wl,-rpath,/Users/yyy/Qt5.4.2/5.4/clang_64/lib -o bin/xxx.app/Contents/MacOS/xxx build/MACHIPC.o build/main.o build/crashhandler.o build/minidump_file_writer.o build/string_conversion.o build/convert_UTF.o build/md5.o build/exception_handler.o build/minidump_generator.o build/dynamic_images.o build/string_utilities.o build/file_id.o build/macho_id.o build/macho_utilities.o build/macho_walker.o build/md5.o build/breakpad_nlist_64.o build/crash_generation_client.o build/client.pb.o build/server.pb.o build/lobbymodel.o build/lobby.o build/steamservers.o build/steamstats.o build/person.o build/personmodel.o build/mastertcpclient.o build/messagemodel.o build/application.o build/udkinput.o build/servermodel.o build/sortfilterproxymodel.o build/avatarimageprovider.o build/steamserverlistresponse.o build/qrc_qml.o build/qrc_main.o build/qrc_options.o build/qrc_images.o build/qrc_sounds.o build/moc_lobbymodel.o build/moc_lobby.o build/moc_steamservers.o build/moc_steamstats.o build/moc_person.o build/moc_personmodel.o build/moc_mastertcpclient.o build/moc_lobbyspotmodel.o build/moc_gameprocess.o build/moc_messagemodel.o build/moc_playermodel.o build/moc_application.o build/moc_udkinput.o build/moc_servermodel.o build/moc_sortfilterproxymodel.o build/moc_steamserverlistresponse.o -F/Users/yyy/Qt5.4.2/5.4/clang_64/lib /Users/yyy/programs/xxx/libs/osx/libsteam_api.dylib /Users/yyy/programs/xxx/libs/osx/libprotobuf-lite.10.dylib -framework Carbon -framework Cocoa -framework QtWebEngine -framework QtQuick -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework QtQml -framework QtNetwork -framework QtWidgets -framework OpenGL -framework AGL

Undefined symbols for architecture x86_64:

"google::protobuf::io::CodedInputStream::ReadTagFallback()", referenced from:

client::Authenticate::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::GetList::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ContinuousLobbyUpdates::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::LobbyRoom::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ChangeStatus::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ChangeSpot::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::VoteKick::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

...

"google::protobuf::io::CodedInputStream::ReadVarint32Fallback(unsigned int*)", referenced from:

google::protobuf::io::CodedInputStream::ReadVarint32(unsigned int*) in client.pb.o

google::protobuf::io::CodedInputStream::ReadVarint32(unsigned int*) in server.pb.o

"google::protobuf::io::CodedInputStream::ReadVarint64Fallback(unsigned long long*)", referenced from:

google::protobuf::io::CodedInputStream::ReadVarint64(unsigned long long*) in client.pb.o

google::protobuf::io::CodedInputStream::ReadVarint64(unsigned long long*) in server.pb.o

"google::protobuf::io::CodedOutputStream::WriteVarint32(unsigned int)", referenced from:

client::GetList::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::LobbyRoom::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ChangeStatus::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

server::Entry::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in server.pb.o

server::List::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in server.pb.o

server::PresenceChange::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in server.pb.o

server::StatusChange::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in server.pb.o

...

"google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)", referenced from:

client::Authenticate::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::LobbyRoom::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ChangeStatus::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::ChangeSpot::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::VoteKick::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::VoteBalance::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

client::SendMessage::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in client.pb.o

...

"google::protobuf::internal::RepeatedPtrFieldBase::Swap(google::protobuf::internal::RepeatedPtrFieldBase*)", referenced from:

google::protobuf::RepeatedPtrField<server::Entry>::Swap(google::protobuf::RepeatedPtrField<server::Entry>*) in server.pb.o

google::protobuf::RepeatedPtrField<server::LobbySync_Player>::Swap(google::protobuf::RepeatedPtrField<server::LobbySync_Player>*) in server.pb.o

google::protobuf::RepeatedPtrField<server::PlayerStats>::Swap(google::protobuf::RepeatedPtrField<server::PlayerStats>*) in server.pb.o

google::protobuf::RepeatedPtrField<server::KickVote_Affected>::Swap(google::protobuf::RepeatedPtrField<server::KickVote_Affected>*) in server.pb.o

google::protobuf::RepeatedPtrField<server::PlayerStats_Stat>::Swap(google::protobuf::RepeatedPtrField<server::PlayerStats_Stat>*) in server.pb.o

"breakpad::BootstrapRegister(unsigned int, char*, unsigned int)", referenced from:

google_breakpad::ReceivePort::ReceivePort(char const*) in MACHIPC.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make: *** [bin/xxx.app/Contents/MacOS/xxx] Error 1

22:43:37: The process "/usr/bin/make" exited with code 2.

Error while building/deploying project xxx (kit: Desktop Qt 5.4.2 clang 64bit)

When executing step "Make"

22:43:37: Elapsed time: 00:00.





dylib stuff:

c-c9e570d5:xxx yyy$ file libs/osx/libprotobuf-lite.10.dylib 

libs/osx/libprotobuf-lite.10.dylib: Mach-O 64-bit dynamically linked shared library x86_64

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadTagFallback

000000000001c380 T __ZN6google8protobuf2io16CodedInputStream15ReadTagFallbackEj

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadVarint32Fallback

000000000001c230 T __ZN6google8protobuf2io16CodedInputStream20ReadVarint32FallbackEj

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadVarint64Fallback

000000000001c030 T __ZN6google8protobuf2io16CodedInputStream20ReadVarint64FallbackEv

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep WriteVarint32

000000000001cbf0 T __ZN6google8protobuf2io17CodedOutputStream21WriteVarint32SlowPathEj

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadString

000000000001bcf0 T __ZN6google8protobuf2io16CodedInputStream10ReadStringEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEi

000000000001bd80 T __ZN6google8protobuf2io16CodedInputStream18ReadStringFallbackEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEi

c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep Swap

                 U _OSAtomicCompareAndSwap64

                 U _OSAtomicCompareAndSwap64Barrier

00000000000108d0 T __ZN6google8protobuf8internal12ExtensionSet12SwapElementsEiii

0000000000011f10 T __ZN6google8protobuf8internal12ExtensionSet13SwapExtensionEPS2_i

0000000000011b50 T __ZN6google8protobuf8internal12ExtensionSet4SwapEPS2_




What could be the reason for it being undefined? I'm a bit helpless. Did I compile protobuf wrongly?


Hope there's a solution here.

Tamilano

unread,
Aug 10, 2015, 1:29:19 PM8/10/15
to Protocol Buffers

Hi there!


I'm trying to build a qt project including the /usr/local/lib/libprotobuf-lite.10.dylib that I got from following instructions from here:

$ ./configure
$ make
$ make check
$ make install


The compile output is:






Some info on the dylib:

c-c9e570d5:xxx yyy$ file libs/osx/libprotobuf-lite.10.dylib

libs/osx/libprotobuf-lite.10.dylib: Mach-O 64-bit dynamically linked shared library x86_64


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadTagFallback


000000000001c380 T __ZN6google8protobuf2io16CodedInputStream15ReadTagFallbackEj


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadVarint32Fallback


000000000001c230 T __ZN6google8protobuf2io16CodedInputStream20ReadVarint32FallbackEj


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadVarint64Fallback


000000000001c030 T __ZN6google8protobuf2io16CodedInputStream20ReadVarint64FallbackEv


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep WriteVarint32


000000000001cbf0 T __ZN6google8protobuf2io17CodedOutputStream21WriteVarint32SlowPathEj


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep ReadString


000000000001bcf0 T __ZN6google8protobuf2io16CodedInputStream10ReadStringEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEi


000000000001bd80 T __ZN6google8protobuf2io16CodedInputStream18ReadStringFallbackEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEi


c-c9e570d5:xxx yyy$ nm libs/osx/libprotobuf-lite.10.dylib | grep Swap


                 U _OSAtomicCompareAndSwap64


                 U _OSAtomicCompareAndSwap64Barrier


00000000000108d0 T __ZN6google8protobuf8internal12ExtensionSet12SwapElementsEiii


0000000000011f10 T __ZN6google8protobuf8internal12ExtensionSet13SwapExtensionEPS2_i


0000000000011b50 T __ZN6google8protobuf8internal12ExtensionSet4SwapEPS2_






What is wrong here? Did I compile protobuf wrongly? I'm a bit helpless.


I hope there is a solution somewhere.

Reply all
Reply to author
Forward
0 new messages