Android开发Android技术知识Android开发

Part03_CMakeLists查找指定目录下所有源文件时引发

2018-03-09  本文已影响498人  IT魔幻师

一、BUG重现

本人使用AndroidStudio2.3.3构建android项目使用CMakeLists自动构建C代码

    # 获取当前目录下的所有的文件(目录)的路径并保存到 all_source 变量中
    #file(GLOB all_source  *.cpp  )
    add_library( native-lib
                 SHARED
                 ${all_source} )

使用上述语法 编译CMakeLists.txt所在目录下所有的原文件构建成功后,手动创建一个新的源文件后出现如下错误,并无法编译通过(尝试过点击Sync Now,或者CleanProject,Make Project,Rebuild Project,重启AndroidStudio,甚至重启电脑,依旧提示This file is not part of the project....)。

二、分析原因

经过多次尝试后发现语法并没有问题,问题的根源是在创建新的源文件时AndroidStudio的脚本工具并没有重新标记这个新的源文件,刷新时他只检查了CmakeLists.txt文件发现文件并没有改动所以就跳过了源文件重新标记的过程导致新创建的源文件无法被添加进构建规则。

三、解决办法

    #查找当前目录下所有源文件并保存至all_source变量中
    aux_source_directory(. all_source)
    # 获取当前目录下的所有的文件(目录)的路径并保存到 all_source 变量中
    #file(GLOB all_source  *.cpp  )
    
    add_library( native-lib
                 SHARED
                 ${all_source} )
上一篇 下一篇

猜你喜欢

热点阅读