昨日,准确来说应该是从昨日到今天00:20我在网上~~抄袭~~学习某个native开源项目。 然后native中需要使用cmake编写cpp目录下的编译规则。 问题就在这里了我已经通过cmake将某个子目录中的.h头文件引入至当前项目中了,但是依然没有提示。(没有引入项目的源文件是没有代码提示的) 然后我打开clion开始cmake调试路。在一顿操作无果后,只能破防睡觉并大骂Android studio傻逼。 但今天我在公司上班时终于被我找到了解决之道。
解决之道
我的文件目录如下截图 (这个截图是发文章的时间点,不是解决问题时的时间点。仅作参考)
我想引入render目录下的文件并创建了文件VideoRender.h 然后写下了如下cmake规则 CMakeLists.txt
add_subdirectory(render)
render/CMakeLists.txt
add_subdirectory(video)
render/video/CMakeLists.txt
file(GLOB source_file "*.cpp")
file(GLOB source_include "*.h")
add_library(video ${source_file} ${source_include})
target_include_directories(video PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
此时video目录中所有.cpp与.h结尾的文件都应该被引入到当前工程中。 但是它没有。 解决方法就是在video目录中随便放入一个.cpp文件中然后将VideoRender.h引入至你所在的.cpp文件就可以了然后点击gradle sync进行同步就能弹出代码提示辣~。
fix_as_bug.cpp
//
// Created by xxx on 2024/5/25.
// 该文件不要写任何实现 任何数据类型 任何函数逻辑
#include "VideoRender.h"
省流
只需要在你所需要的文件目录中随便创建一个.cpp文件然后include对应的.h文件,然后在gradle sync就可以了