我试图编译这个项目:https ://github.com/ccshiro/corecraft 我使用的是 Ubuntu 16.04,我已经安装了:gcc 4.9、5.0、6.0;g++ 4.9、5.0;铛; cmake3; 和 libsparsehash-dev 。
我收到了这个错误:
[ 96%] Linking CXX executable mangosd
../game/libgame.a(Map.cpp.o): In function `sh_hashtable_settings<ObjectGuid, std::tr1::hash<ObjectGuid>, unsigned long, 4>::hash(ObjectGuid const&) const':
/usr/include/google/sparsehash/hashtable-common.h:65: undefined reference to `std::tr1::hash<ObjectGuid>::operator()(ObjectGuid) const'
collect2: error: ld returned 1 exit status
src/mangosd/CMakeFiles/mangosd.dir/build.make:244: recipe for target 'src/mangosd/mangosd' failed
make[2]: *** [src/mangosd/mangosd] Error 1
CMakeFiles/Makefile2:930: recipe for target 'src/mangosd/CMakeFiles/mangosd.dir/all' failed
make[1]: *** [src/mangosd/CMakeFiles/mangosd.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
这里Map.cpp,这里/usr/include/google/sparsehash/hashtable-common.h
我尝试在 Google 上搜索“collect2:错误:ld 返回 1 退出状态”错误,发现代码中可能是西里尔字母或非拉丁字母符号,但我在上面的这 2 个文件中没有发现错误。在问题跟踪器上,我还从另一个人那里发现了同样的错误https://github.com/ccshiro/corecraft/issues/5
我不是 C++ 程序员,所以我不明白这里有什么问题,谁能帮我解决这个问题?