一、错误信息:
centos7 编译licode时,libav 总是报alloc_size的错误,all warnings being treated as errors所有的警告都被当成了错误,这样就会无缘无故报很多错误。修改CMakeLists开启警告信息,不用把警告当错误。
libdeps/build/include/libavutil/mem.h:174:79: error: ‘alloc_size’ attribute ignored on a function returning ‘int’ [-Werror=attributes]
解决方法,打开文件src/erizo/CMakeLists.txt,找到CMAKE_CXX_FLAGS ,添加-Wno-error。
if(${ERIZO_BUILD_TYPE} STREQUAL "debug")
message("Generating DEBUG project")
set(CMAKE_CXX_FLAGS "-g -Wall -std=c++14 ${ERIZO_CMAKE_CXX_FLAGS} -Wno-error")
elseif(${ERIZO_BUILD_TYPE} STREQUAL "sanitizer")
message("Generating SANITIZER project")
set(CMAKE_CXX_FLAGS "-g -Wall -std=c++14 ${ERIZO_CMAKE_CXX_FLAGS} -O1 -fno-omit-frame-pointer -fsanitize=address -fno-optimize-sibling-calls")
else()
message("Generating RELEASE project")
set(CMAKE_CXX_FLAGS "-g -Wall -O3 -std=c++14 ${ERIZO_CMAKE_CXX_FLAGS}" -Wno-error)
endif()
二、error: ‘x264_bit_depth’ undeclared
自己手动安装x264时需要注意一点,licode中所用的liav的版本是v11.9.tar.gz 版本比较老了,所以用最新的x264代码会出现
x264_bit_depth 未定义错误,可以换成这个版本
wget http://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20170517-2245-stable.tar.bz2
编译的时候记着加上--enable-shared ,不然会报 -fpic错误。
另外需要加上pthread库 src/erzo/CMakeLists
target_link_libraries(erizo ${boost_LIBRARIES} ${SRTP} ${SSL} ${CRYPTO} ${LIBS} ${LOG} pthread webrtc)