Dolphin, the GameCube and Wii emulator - Forums

Full Version: Trouble compiling for Ubuntu 20.04 undefined references to cairo to cairo
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

treous

Hello all,

I'm very new to Dolphin and I'm trying to compile the latest dev build for Ubuntu 20.04.


I'm following the instructions on the wiki here https://wiki.dolphin-emu.org/index.php?t...n_on_Linux

When I compile using gcc I get the following errors:

Code:
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_tag_end'
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_tag_begin'
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_font_options_get_variations'


My version of gcc is 9.3.0. I have both libcairo2 and libcairo2-dev installed.

I tried using clang to compile and got the following errors:

Code:
usr/bin/ld: ../Core/CMakeFiles/core.dir/NetPlayClient.cpp.o: in function `NetPlay::NetPlayClient::Connect()':
NetPlayClient.cpp:(.text+0x123d): undefined reference to `sf::Packet::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x124a): undefined reference to `sf::Packet::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x125d): undefined reference to `sf::Packet::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: ../Core/CMakeFiles/core.dir/NetPlayClient.cpp.o: in function `NetPlay::NetPlayClient::OnData(sf::Packet&)':
NetPlayClient.cpp:(.text+0x1aeb): undefined reference to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x1c87): undefined reference to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x1e1b): undefined reference to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x2217): undefined reference to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
/usr/bin/ld: NetPlayClient.cpp:(.text+0x2ad1): undefined reference to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
/usr/bin/ld: ../Core/CMakeFiles/core.dir/NetPlayClient.cpp.o:NetPlayClient.cpp:(.text+0x2ae4): more undefined references to `sf::Packet::operator>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)' follow
/usr/bin/ld: ../Core/CMakeFiles/core.dir/NetPlayClient.cpp.o: in function `NetPlay::NetPlayClient::SendChatMessage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
NetPlayClient.cpp:(.text+0x8220): undefined reference to `sf::Packet::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: ../Core/CMakeFiles/core.dir/NetPlayClient.cpp.o: in function `void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, NetPlay::NetPlayClient::ComputeMD5(NetPlay::SyncIdentifier const&)::$_35> >(void*)':
NetPlayClient.cpp:(.text+0xae1b): undefined reference to `sf::Packet::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: ../InputCommon/CMakeFiles/inputcommon.dir/ControllerInterface/DualShockUDPClient/DualShockUDPClient.cpp.o: in function `ciface::DualShockUDPClient::Device::UpdateInput()':
DualShockUDPClient.cpp:(.text+0x1b78): undefined reference to `sf::IpAddress::IpAddress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: ../InputCommon/CMakeFiles/inputcommon.dir/ControllerInterface/DualShockUDPClient/DualShockUDPClient.cpp.o: in function `ciface::DualShockUDPClient::HotplugThreadFunc()':
DualShockUDPClient.cpp:(.text+0x21ab): undefined reference to `sf::IpAddress::IpAddress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/usr/bin/ld: ../Core/CMakeFiles/core.dir/WiiUtils.cpp.o: in function `WiiUtils::OnlineSystemUpdater::GetSystemTitles()':
WiiUtils.cpp:(.text+0x2409): undefined reference to `pugi::xml_document::save(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned int, pugi::xml_encoding) const'
clang: <font color="#CC0000"><b>error: </b></font>linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [Source/Core/DolphinNoGUI/CMakeFiles/dolphin-nogui.dir/build.make:203: Binaries/dolphin-emu-nogui] Error 1
make[1]: *** [CMakeFiles/Makefile2:1679: Source/Core/DolphinNoGUI/CMakeFiles/dolphin-nogui.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 81%] Built target dolphin-emu_autogen
make: *** [Makefile:152: all] Error 2

After trying clang I tried gcc again in order to get the errors to post here and got even more errors:

Code:
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_tag_end'
/usr/bin/ld: /usr/lib/llvm-10/lib/libLLVM-10.so.1: undefined reference to `del_curterm@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tputs@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tgoto@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /usr/lib/llvm-10/lib/libLLVM-10.so.1: undefined reference to `setupterm@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_tag_begin'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tgetflag@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/librsvg-2.so.2: undefined reference to `cairo_font_options_get_variations'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tgetnum@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /usr/lib/llvm-10/lib/libLLVM-10.so.1: undefined reference to `tigetnum@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /usr/lib/llvm-10/lib/libLLVM-10.so.1: undefined reference to `set_curterm@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tgetent@NCURSES6_TINFO_5.0.19991023'
/usr/bin/ld: /lib/x86_64-linux-gnu/libedit.so.2: undefined reference to `tgetstr@NCURSES6_TINFO_5.0.19991023'
collect2: error: ld returned 1 exit status
make[2]: *** [Source/Core/DolphinQt/CMakeFiles/dolphin-emu.dir/build.make:2535: Binaries/dolphin-emu] Error 1
make[1]: *** [CMakeFiles/Makefile2:1725: Source/Core/DolphinQt/CMakeFiles/dolphin-emu.dir/all] Error 2
make: *** [Makefile:152: all] Error 2


Thanks in advance!

treous

Nevermind. Decided to dual boot 18.04 instead and it built with no issues on a fresh install.

sraoshaincarnate

I am having the exact same error, but I don't want to install and dual boot to Ubuntu 18.04.

Is there any way I can fix this error and run latest version on Ubuntu 20.04?