美文网首页
Android c/c++编译过程中使用了哪些依赖的头文件

Android c/c++编译过程中使用了哪些依赖的头文件

作者: Nothing_655f | 来源:发表于2020-06-18 19:28 被阅读0次

关于Android mk 一些规则介绍可以参考这篇文章
Android.mk编译目标常见的一些编译目标 https://www.jianshu.com/p/1ad479ccf052
本文是记录实际编译过程中头文件的include一个问题
先看一个简单的mk 文件

LOCAL_PATH:= ${call my-dir}
include $(CLEAR_VARS)
LOCAL_MODULE := libhelloword.so
LOCAL_C_INCLUDE += hellowrod.h
LOCAL_SRC_FIELS := hellowrod.cpp
LOCAL_MODULE_TAGS := optional
include $(BUILD_ SHARED_LIBRAYIES)

我在实际的Android.mk 文件中 添加了他人模块头文件路径的引用

LOCAL_C_INCLUDE += xxx/xxx/xxx

然后在代码debug.cpp中添加

#include “common.h”
ALOGD(“%d”,  COMMON_MODE);  // COMMON_MODE define @ common.h

但是编译一直报错误 COMMON_MODE not defined
原因是根本就没有编译到 xxx/xxx/xxx/common.h 里面的内容
为什么会没有编译到,猜测是有另外一个头文件 common.h被引用了,这里引申出一个问题,怎么看c/c++编译过程中使用了哪些依赖的头文件?

C:

This will give make dependencies which list absolute paths of include files:

   gcc -M hello.c

If you don't want the system includes (i.e. #include <something.h>) then use:

    gcc -MM hello.c

CPP:

    g++ -H hello.c

我这边是CPP,所以我在Android.mk中增加一个选项
LOCAL_CFLAGS += -H
然后source & lunch & mm -B
通过编译log可以看到确实是引用了错误的 common.h

知道原因了就有挺多改法的,不过coding的时候还是要注意尽量不要使用 common.h 这类常见或者通用的名字,毕竟很容易出现依赖错误的问题
Android编译系统中头文件搜索路径的顺序问题可以看这篇文章 Android编译系统中头文件搜索路径的顺序问题

相关文章

  • Android c/c++编译过程中使用了哪些依赖的头文件

    关于Android mk 一些规则介绍可以参考这篇文章Android.mk编译目标常见的一些编译目标 https:...

  • CGO问题和解决方案

    1、当go程序中使用了由c/c++等外部库文件或依赖,则go编译需要将cgo开启,并使用gcc进行编译 、如使用了...

  • Android.mk系统介绍

    Android.mk语句介绍 1.LOCAL_C_INCLUDES 额外的C/C++编译头文件路径,用LOCAL_...

  • pytorch c++

    pytorch c++的编译过程 下载源码 安装 安装依赖项 卸载 编写c++测试代码 cmake报错Could ...

  • c++中的字符串string和C语言中的字符char

    c++中的字符串string 在c++中使用string类,必须在程序中包含头文件string #include ...

  • Xcode Build Search Paths设置

    c/c++ 头文件引用问题 include <> 引用编译器的类库路径下的头文件 include “” 引用工程目...

  • c++ multiple definition & previo

    使用cmake list 编译c++文件时报上面的错 原来是引用了.cpp文件 改成正常的头文件就好了 #incl...

  • iOS Runtime实用详解(一)

    基本概念 了解 C/C++编译C/C++编译就是将C/C++的代码映射到相应的机器码,编译过程包括几个部分分别是编...

  • C++ 中一些问题记录

    一、在编译成.so之后再android中打印c++的信息 引入头文件: 在需要打印的地方使用: 二、判断是否为中文...

  • C++编译过程

    C++ 编译过程在介绍编译器之前,先简单地说一下 C++ 的编译过程,以便理解编译器的工作。编译(compilin...

网友评论

      本文标题:Android c/c++编译过程中使用了哪些依赖的头文件

      本文链接:https://www.haomeiwen.com/subject/xvngtktx.html