Çözüldü QC build problemi

  • Konuyu açan Konuyu açan zodiac160
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 95
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

zodiac160

MT Üye
MT Üye
Mesaj
180
Çözümler
9
Beğeni
75
Puan
479
Ticaret Puanı
0
Merhaba arkadaşlar. Kendi alt yapımı geliştiriyordum. Bütün projeyi Cmake olarak güncelledim. Oyuna giriş yaptım hep windows hemde freebsdde de sorunsuz biçimde. FreeBSD'de qc sorunsuz build olup questleri çalıştırırken. Windows tarafında liblua linkleme hatası alıyorum. Eğer daha önce msvc ile derlenmiş bir libluayı kullanırsam qc sorunsuz derleniyor ve çalışıyor windows tarafında fakat clang-cl ile build aldığımda linkleme hatası alıyorum. Bu soruna bir çözüm yolu bulamadım.

kontrol edebilmeniz açısından qc ve liblua için oluşturduğum cmakelistler:

Liblua:
qc:

Kod:
Genişlet Daralt Kopyala
LINK Pass 1: command "C:\PROGRA~2\LLVM\bin\lld-link.exe /nologo Server\quest\CMakeFiles\quest.dir\src\crc32.cc.obj Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj /out:C:\Users\sinan\OneDrive\Masaüstü\m2-svfiles\svfiles\main\srv1\share\bin\qc.exe /implib:Server\quest\qc.lib /pdb:C:\Users\sinan\OneDrive\Masaüstü\m2-svfiles\svfiles\main\srv1\share\bin\qc.pdb /version:0.0 /machine:X86 /debug /INCREMENTAL /subsystem:console -LIBPATH:C:\Users\sinan\OneDrive\Masaüstü\m2-svfiles\svfiles-server\Srcs\Server\liblua\lib liblua_d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:Server\quest\CMakeFiles\quest.dir/intermediate.manifest Server\quest\CMakeFiles\quest.dir/manifest.res" failed (exit code 1) with the following output:
lld-link: error: undefined symbol: char const * __cdecl luaX_token2str(struct LexState *, int)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:188
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(class std::basic_ostream<char, struct std::char_traits<char>> & __cdecl operator<<(class std::basic_ostream<char, struct std::char_traits<char>> &, struct Token const &))

lld-link: error: undefined symbol: int __cdecl luaL_loadbuffer(struct lua_State *, char const *, unsigned int, char const *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:194
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(bool __cdecl check_syntax(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &))

lld-link: error: undefined symbol: void __cdecl lua_settop(struct lua_State *, int)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:203
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(bool __cdecl check_syntax(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &))

lld-link: error: undefined symbol: char const * __cdecl lua_tostring(struct lua_State *, int)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:199
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(bool __cdecl check_syntax(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &))

lld-link: error: undefined symbol: void __cdecl luaZ_init(struct Zio *, char const * (__cdecl *)(struct lua_State *, void *, unsigned int *), void *, char const *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:287
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(void __cdecl parse(char *))

lld-link: error: undefined symbol: union TString * __cdecl luaS_newlstr(struct lua_State *, char const *, unsigned int)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:293
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(void __cdecl parse(char *))

lld-link: error: undefined symbol: void __cdecl luaX_setinput(struct lua_State *, struct LexState *, struct Zio *, union TString *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:293
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(void __cdecl parse(char *))

lld-link: error: undefined symbol: int __cdecl luaX_lex(struct LexState *, union SemInfo *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:113
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(void __cdecl next(struct LexState *))
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:130
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(void __cdecl lookahead(struct LexState *))

lld-link: error: undefined symbol: struct lua_State * __cdecl lua_open(void)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:1049
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(_main)

lld-link: error: undefined symbol: void __cdecl luaX_init(struct lua_State *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:1055
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(_main)

lld-link: error: undefined symbol: void __cdecl lua_close(struct lua_State *)
>>> referenced by C:\Users\sinan\OneDrive\Masa├╝st├╝\m2-svfiles\svfiles-server\Srcs\Server\quest\src\qc.cc:1066
>>>               Server\quest\CMakeFiles\quest.dir\src\qc.cc.obj:(_main)
 
Clang-cl yerine clang++ olarak denedim hatta
set_source_files_properties(${LUA_SOURCES} PROPERTIES LANGUAGE CXX) böyle bir properties ayarı ekledim yine aynı hata ile karşılaştım Liblua game de filan problem yok clang-clde build bile olsa oyuna girişlerde ve ya freebsdde quest çalıştırmalarda hiçbir problem ile karşılaşmadım sadece windowsta aşamadım bu problemi
 
Windowsta derleme yaparken Cmakelist oluşturan arkadaşlar qc.cc kısmında
#if !defined(_MSC_VER) && defined(__cplusplus) bu tanımı
#if defined(__cplusplus) bu şekilde güncelleme yaparlarsa sorun kalkacaktır. MSVC haricinde ki derleme araçları için geçerli clan-cl clang gcc için geçerli
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst