PDA

View Full Version : Errori nel linkare file exe (mingw32)


Yuno gasai
30-06-2016, 10:40
Salve ragazzi, scusate per il titolo un pò ambiguo... Niente, sto cercando di compilare con mingw32 un source code (di un emulatore). Il problema è che proprio alla fine mi da questi errori:
../core/libcore.a(cfg.cpp.obj):cfg.cpp:(.text+0x1140): undefined reference to `Common::UTF8ToUTF16(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../core/libcore.a(frd.cpp.obj):frd.cpp:(.text+0x436): undefined reference to `Common::UTF8ToUTF16(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../core/libcore.a(archive_backend.cpp.obj):archive_backend.cpp:(.text+0x527): undefined reference to `Common::UTF16ToUTF8(std::__cxx11::basic_string<char16_t, std::char_traits<char16_t>, std::allocator<char16_t> > const&)'
../core/libcore.a(archive_backend.cpp.obj):archive_backend.cpp:(.text+0x5a8): undefined reference to `Common::UTF8ToUTF16(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../core/libcore.a(swkbd.cpp.obj):swkbd.cpp:(.text+0x508): undefined reference to `Common::UTF8ToUTF16(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0xe8): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x1cd): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x390): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x441): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x78a): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x83c): more undefined references to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0xeba): undefined reference to `Common::UTF16ToUTF8(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x1482): undefined reference to `Common::UTF16ToUTF8(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x1519): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x162f): undefined reference to `Common::UTF16ToUTF8(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x316c): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../common/libcommon.a(file_util.cpp.obj):file_util.cpp:(.text+0x318a): undefined reference to `Common::UTF8ToUTF16W(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

Credo siano dovuti proprio a Common::UTF8ToUTF16. Ho provato ad usare varie flags tra cui "-D_GLIBCXX_USE_CXX11_ABI=0 ", ma nulla:mc: Devo installare qualche pacchetto aggiuntivo? Compilo sotto windows e mingw32 l'ho scaricato tramite Msys2.

Scusate se sto usando termini basici ma sono ancora agli inizi con la programmazione:D

GTKM
30-06-2016, 10:43
Perché hai usato lo spoiler? :D

Comunque, per pura curiosità, perché prima non provi sotto Linux, col gcc "nativo"? :D

Yuno gasai
30-06-2016, 10:55
Perché hai usato lo spoiler? :D

Comunque, per pura curiosità, perché prima non provi sotto Linux, col gcc "nativo"? :D

Perchè mi pareva brutto mettere in mostra tutti quegli errori:sofico: Comunque potrei provare in effetti... So che sembrerà una domanda da niubbo totale, ma è possibile compilare file exe sotto linux?

GTKM
30-06-2016, 11:09
Perchè mi pareva brutto mettere in mostra tutti quegli errori:sofico: Comunque potrei provare in effetti... So che sembrerà una domanda da niubbo totale, ma è possibile compilare file exe sotto linux?

Beh, se compili lo stesso codice sorgente ti verrà fuori un binario eseguibile da Linux, ma, ovviamente, non sarà un .exe.
Ma quello che ho detto io ti servirebbe più che altro per capire se c'è un errore nel tuo codice, o magari è il linker a non trovare qualcosa. :D

Yuno gasai
01-07-2016, 10:36
Infine dopo giorni a capire cosa non andasse, mi sono accorto di non aver incluso <codecvt> :Prrr: Ora compila tutto:D