描述

使用glog的CMake工程,在make时报错

出现原因

之前也出现过Undefined symbols for architecture x86_64这种错误,出现这种错误时,基本上问题可以确定,就是

工程在编译时找不到包含这个提示函数的库文件

原因有两个:
第一,存在源文件没有编译,和我这篇文章相同的情况Mac编译出错
第二,你的工程里需要用到某个第三方库,而这个库现在没有链接到你的工程下

解决办法

排查CMakeLists.txt,发现添加了opencv、fastrtps、fastcdr库,但是没有添加glog库。
在后面添加glog库,像下面这样写

set( PROJECT_LINK_LIBS
    ${OpenCV_LIBRARIES}
    fastcdr
    fastrtps
    glog
)
target_link_libraries( warehouse ${PROJECT_LINK_LIBS} )

make可以成功了