kmc-jp / n64-emu

Low-level Nintendo64 emulator 🌏
29 stars 1 forks source link

Linux build failed #98

Closed tamaroning closed 1 year ago

tamaroning commented 1 year ago

Using GCC13

n64-emu/build$ make -j9
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tamaron/work/n64-emu/build
Consolidate compiler generated dependencies of target rcp
Consolidate compiler generated dependencies of target utils
Consolidate compiler generated dependencies of target cpu
Consolidate compiler generated dependencies of target memory
Consolidate compiler generated dependencies of target n64_system
Consolidate compiler generated dependencies of target app
Consolidate compiler generated dependencies of target mmu
Consolidate compiler generated dependencies of target mmio
Consolidate compiler generated dependencies of target parallel-rdp
[  8%] Built target memory
[ 13%] Built target cpu
[ 17%] Built target utils
[ 20%] Built target rcp
[ 25%] Built target mmu
[ 35%] Built target mmio
[ 40%] Built target app
[ 47%] Built target n64_system
[ 92%] Built target parallel-rdp
Consolidate compiler generated dependencies of target n64-test
Consolidate compiler generated dependencies of target n64
[ 97%] Built target n64-test
[ 97%] Linking CXX executable n64
/usr/bin/ld: utils/libutils.a(utils.cpp.o): warning: relocation against `_ZN3N643Cpu3Cpu8instanceE' in read-only section `.text._ZN3N643Cpu3Cpu12get_instanceEv[_ZN3N643Cpu3Cpu12get_instanceEv]'
/usr/bin/ld: utils/libutils.a(utils.cpp.o): in function `Utils::core_dump()':
utils.cpp:(.text+0x46f): undefined reference to `N64::Cpu::Cpu::dump()'
/usr/bin/ld: utils/libutils.a(utils.cpp.o): in function `N64::Cpu::Cpu::get_instance()':
utils.cpp:(.text._ZN3N643Cpu3Cpu12get_instanceEv[_ZN3N643Cpu3Cpu12get_instanceEv]+0xb): undefined reference to `N64::Cpu::Cpu::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::N64System::reset_all(N64::N64System::Config&)':
n64_system.cpp:(.text+0xb9): undefined reference to `N64::Cpu::Cpu::reset()'
/usr/bin/ld: n64_system.cpp:(.text+0xd3): undefined reference to `N64::Mmio::PI::PI::reset()'
/usr/bin/ld: n64_system.cpp:(.text+0xe0): undefined reference to `N64::Mmio::SI::SI::reset()'
/usr/bin/ld: n64_system.cpp:(.text+0xed): undefined reference to `N64::Mmio::MI::MI::reset()'
/usr/bin/ld: n64_system.cpp:(.text+0xfa): undefined reference to `N64::Mmio::AI::AI::reset()'
/usr/bin/ld: n64_system.cpp:(.text+0x107): undefined reference to `N64::Mmio::VI::VI::reset()'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::N64System::set_up(N64::N64System::Config&)':
n64_system.cpp:(.text+0x1a6): undefined reference to `N64::Memory::read_paddr32(unsigned int)'
/usr/bin/ld: n64_system.cpp:(.text+0x1be): undefined reference to `N64::Memory::write_paddr32(unsigned int, unsigned int)'
/usr/bin/ld: n64_system.cpp:(.text+0x212): undefined reference to `N64::Cpu::Cpu::set_pc64(unsigned long)'
/usr/bin/ld: n64_system.cpp:(.text+0x26f): undefined reference to `N64::Mmio::Pif::execute_rom_hle()'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::N64System::check_breakpoint(N64::N64System::Config&)':
n64_system.cpp:(.text+0x2a1): undefined reference to `N64::Cpu::Cpu::get_pc64() const'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::N64System::step(N64::N64System::Config&, Vulkan::WSI&)':
n64_system.cpp:(.text+0x49b): undefined reference to `N64::Cpu::Cpu::step()'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmio::VI::VI::get_instance()':
n64_system.cpp:(.text._ZN3N644Mmio2VI2VI12get_instanceEv[_ZN3N644Mmio2VI2VI12get_instanceEv]+0xb): undefined reference to `N64::Mmio::VI::VI::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Memory::Memory::reset()':
n64_system.cpp:(.text._ZN3N646Memory6Memory5resetEv[_ZN3N646Memory6Memory5resetEv]+0x3d): undefined reference to `N64::Memory::RI::reset()'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Memory::Memory::load_rom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
n64_system.cpp:(.text._ZN3N646Memory6Memory8load_romERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN3N646Memory6Memory8load_romERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x27): undefined reference to `N64::Memory::Rom::load_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmio::AI::AI::get_instance()':
n64_system.cpp:(.text._ZN3N644Mmio2AI2AI12get_instanceEv[_ZN3N644Mmio2AI2AI12get_instanceEv]+0xb): undefined reference to `N64::Mmio::AI::AI::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmio::MI::MI::get_instance()':
n64_system.cpp:(.text._ZN3N644Mmio2MI2MI12get_instanceEv[_ZN3N644Mmio2MI2MI12get_instanceEv]+0xb): undefined reference to `N64::Mmio::MI::MI::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmio::PI::PI::get_instance()':
n64_system.cpp:(.text._ZN3N644Mmio2PI2PI12get_instanceEv[_ZN3N644Mmio2PI2PI12get_instanceEv]+0xb): undefined reference to `N64::Mmio::PI::PI::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Rsp::Rsp::get_instance()':
n64_system.cpp:(.text._ZN3N643Rsp3Rsp12get_instanceEv[_ZN3N643Rsp3Rsp12get_instanceEv]+0xb): undefined reference to `N64::Rsp::Rsp::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmio::SI::SI::get_instance()':
n64_system.cpp:(.text._ZN3N644Mmio2SI2SI12get_instanceEv[_ZN3N644Mmio2SI2SI12get_instanceEv]+0xb): undefined reference to `N64::Mmio::SI::SI::instance'
/usr/bin/ld: n64_system/libn64_system.a(n64_system.cpp.o): in function `N64::Mmu::TLB::get_instance()':
n64_system.cpp:(.text._ZN3N643Mmu3TLB12get_instanceEv[_ZN3N643Mmu3TLB12get_instanceEv]+0xb): undefined reference to `N64::Mmu::TLB::instance'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/n64.dir/build.make:124: src/n64] Error 1
make[1]: *** [CMakeFiles/Makefile2:313: src/CMakeFiles/n64.dir/all] Error 2
make: *** [Makefile:101: all] Error 2
tamaroning commented 1 year ago

Fixed in https://github.com/kmc-jp/n64-emu/pull/99 Thanks!