quiverteam / Engine

Modified Version of Source 2007
104 stars 29 forks source link

filesystem_stdio doesn't link on Linux #59

Closed lilmayofuksu closed 4 years ago

lilmayofuksu commented 4 years ago
[  6%] Linking CXX shared library libfilesystem_stdio.so
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/QueuedLoader.cpp.o: in function `AdjustAsyncIOSpeed()':
/home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:404: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: /home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:404: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: /home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:419: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: /home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:419: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/QueuedLoader.cpp.o: in function `IOComputationJob(FileJob_t*, void*, int, LoaderError_t)':
/home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:474: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/QueuedLoader.cpp.o:/home/ridvan/source/Engine/src/filesystem/QueuedLoader.cpp:474: more undefined references to `g_pFullFileSystem' follow
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/QueuedLoader.cpp.o: in function `CTier2AppSystem<IQueuedLoader, 0>::Connect(void* (*)(char const*, int*))':
/home/ridvan/source/Engine/src/public/tier2/tier2.h:94: undefined reference to `ConnectTier2Libraries(void* (**)(char const*, int*), int)'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/QueuedLoader.cpp.o: in function `CTier2AppSystem<IQueuedLoader, 0>::Disconnect()':
/home/ridvan/source/Engine/src/public/tier2/tier2.h:118: undefined reference to `DisconnectTier2Libraries()'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `CBaseFileSystem::CBaseFileSystem()':
/home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:269: undefined reference to `g_pFullFileSystem'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `CBaseFileSystem::LoadKeyValues(KeyValues&, IFileSystem::KeyValuesPreloadType_t, char const*, char const*)':
/home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:3547: undefined reference to `CCompiledKeyValuesReader::InstanceInPlace(KeyValues&, char const*)'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `CBaseFileSystem::LoadKeyValues(IFileSystem::KeyValuesPreloadType_t, char const*, char const*)':
/home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:3584: undefined reference to `CCompiledKeyValuesReader::Instance(char const*)'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `CBaseFileSystem::ExtractRootKeyName(IFileSystem::KeyValuesPreloadType_t, char*, unsigned int, char const*, char const*)':
/home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:3677: undefined reference to `CCompiledKeyValuesReader::LookupKeyValuesRootKeyName(char const*, char*, unsigned int)'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `CBaseFileSystem::SetupPreloadData()':
/home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:3717: undefined reference to `CCompiledKeyValuesReader::CCompiledKeyValuesReader()'
/usr/bin/ld: /home/ridvan/source/Engine/src/filesystem/basefilesystem.cpp:3718: undefined reference to `CCompiledKeyValuesReader::LoadFile(char const*)'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `void CByteswap::SwapFieldsToTargetEndian<ZIP_EndOfCentralDirRecord>(ZIP_EndOfCentralDirRecord*, void*, unsigned int)':
/home/ridvan/source/Engine/src/public/tier1/byteswap.h:39: undefined reference to `ZIP_EndOfCentralDirRecord::m_DataMap'
/usr/bin/ld: CMakeFiles/filesystem_stdio.dir/basefilesystem.cpp.o: in function `void CByteswap::SwapFieldsToTargetEndian<ZIP_FileHeader>(ZIP_FileHeader*, void*, unsigned int)':
/home/ridvan/source/Engine/src/public/tier1/byteswap.h:39: undefined reference to `ZIP_FileHeader::m_DataMap'
collect2: error: ld returned 1 exit status
make[2]: *** [filesystem/CMakeFiles/filesystem_stdio.dir/build.make:185: filesystem/libfilesystem_stdio.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:479: filesystem/CMakeFiles/filesystem_stdio.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
JJL772 commented 4 years ago

This is very sad... CMake makes me sad, this whole project does really. Hopefully setting up CI and providing a debian chroot should prevent issues like this in the future.

JJL772 commented 4 years ago

Filesystem_stdio now compiles fine on Linux, but I do not know if it works OK. (See #62)