问题一和这个问题相同,参照此问题解决方法,即安装8.1.1版本的fmt。
问题二:编译basalt时出现
usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
解决方法:在编译和安装fmt这个库之前一定要在cmakelists中添加
set(CMAKE_POSITION_INDEPENDENT_CODE ON) # 添加-fPIC编译,即:装成一个动态库(Linux为.so扩展文件;windows为.dll扩展文件)
问题三:编译basalt出现
magic_enum.hpp:674:3: error: static assertion failed: magic_enum requires enum implementation and valid max and min.
static_assert(detail::count_v<D> > 0, "magic_enum requires enum implementation and valid max and min.");
^~~~~~~~~~~~~
在编译basalt之前需要更换gcc/g++版本为9以上,可以参考Ubuntu18.04卸载gcc7.5,安装gcc9.3
之后在编译的地方export gcc的路径:
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
cmake /path/to/your/project
make
或者
SET(CMAKE_C_COMPILER /usr/bin/gcc)
#指定C++交叉编译器
SET(CMAKE_CXX_COMPILER /usr/bin/g++)
问题四:
error: unused variable ‘pos’ [-Werror=unused-variable]
error: unused variable ‘_’ [-Werror=unused-variable]
在cmakelists中去掉werror即可。