解决CLion导入第三方头文件后include头文件not found

0. 问题描述

最近在看陈硕大神的Muduo网络库,但是在CLion上试验的时候出了些问题。问题如下:
(1)如何编写CMakeLists.txt
(2)导入第三方头文件后,CLion中include这些头文件显示红色下划线(file not found)?

1. 问题解决

1.1 编写CMakeLists.txt

按照官方的文档,将从github下载下来的项目编译后,得到两个文件夹:{your-path}/build/release-install-cpp11{your-path}/build/release-cpp11。不过我们只用{your-path}/build/release-install-cpp11即可,该文件夹下有两个子文件夹:lib为静态链接库,include为头文件,我们需要在CMakeLists.txt中将这两个加到项目中,我的如下:

cmake_minimum_required(VERSION 3.16)
project(LearningMuduo)

set(CMAKE_CXX_STANDARD 20)

# 添加thread库
set(THREAD_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

# 导入muduo静态链接库和头文件
include_directories(your-path/build/release-install-cpp11/include)
link_directories(your-path/build/release-install-cpp11/lib)

add_executable(${PROJECT_NAME} main.cpp)

# 链接
TARGET_LINK_LIBRARIES(${PROJECT_NAME} Threads::Threads)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} libmuduo_net.a libmuduo_base.a)

这里我一开始有个小疑惑,就是link_librariestarget_link_libraries的区别,大家可以看看这篇文章

1.2 导入第三方头文件后,CLion中include头文件显示红色下划线(file not found)

这个问题在之前也出现过,但是后面神奇地”消失了“。解决的方法是在官方文档中找到的,描述如下:
在这里插入图片描述
按照文档说的Tools | Resync with Remote Hosts,这个步骤会比较慢,等它加载完后,会在External Libraries下增加Muduo的include头文件,这样红色波浪线就消失了~~
在这里插入图片描述


版权声明:本文为qq_34400232原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。