搜索
bottom↓
回复: 6

如何让linux-gcc找到自定义的头文件

[复制链接]

出0入0汤圆

发表于 2011-5-4 13:10:50 | 显示全部楼层 |阅读模式
如何让linux-gcc找到自定义的头文件,网上很多直接修改

从而直接使用#include“heard.h”

网上说如下的方式:
$ C_INCLUDE_PATH=/opt/gdbm-1.8.3/include
$ export C_INCLUDE_PATH
试过没有用

-I/usr/local/ssl/include 不知道怎么加入makefile,而且我有很多个路径,不是单一路径

高手指点,如何让GCC收索到自己定义的头文件
是我编译UBOOT的时候,几百个自定义头文件找不到,一个个的添加路径,太慢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-5-5 15:41:36 | 显示全部楼层
这么难啊,没人理

出0入0汤圆

发表于 2011-5-5 15:50:34 | 显示全部楼层
给个Makefile你参考:
ToolsPath                 :=../toolchain/

CROSS                        ?= $(ToolsPath)/arm-eabi-4.4.0/bin/arm-eabi-
AS                        := $(CROSS)as
CC                        := $(CROSS)gcc
CXX                        := $(CROSS)g++
LD                        := $(CROSS)ld
AR                        := $(CROSS)ar
OC                        := $(CROSS)objcopy
OD                        := $(CROSS)objdump

LD_FALG:=
C_FLAG:=
objs = $(ToolsPath)/obj/
cflags = -DANDROID -msoft-float        -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums \
        -fno-exceptions -fmessage-length=0 -Wno-multichar \
             -I$(ToolsPath)/bionic/libc/arch-arm/include \
             -I$(ToolsPath)/bionic/libc/include \
             -I$(ToolsPath)/bionic/libstdc++/include \
             -I$(ToolsPath)/bionic/libc/kernel/common \
             -I$(ToolsPath)/bionic/libc/kernel/arch-arm \
             -I$(ToolsPath)/bionic/libm/include \
             -I$(ToolsPath)/bionic/libm/include/arch/arm \
             -I$(ToolsPath)/bionic/libthread_db/include \
             -I$(ToolsPath)/bionic/libm/arm \
             -I$(ToolsPath)/bionic/libm

linkfs =  -Bdynamic \
             -T $(ToolsPath)/armelf.x \
             -dynamic-linker /system/bin/linker\
             --gc-sections\
             -z nocopyreloc\
             --no-undefined\
             -rpath-link=$(objs)\
             -L$(objs)\
             -nostdlib\
             $(objs)/crtbegin_dynamic.o\
        $(ToolsPath)/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/libgcc.a\
        $(objs)/crtend_android.o\
             -lc\
             -lm

shlib_args =\
        -nostdlib\
        -T $(ToolsPath)/armelf.xsc\
        --gc-sections\
        -shared -Bsymbolic\
        -L$(objs)\
        --no-whole-archive\
        -lc\
        -lm\
        --no-undefined\
        $(ToolsPath)/arm-eabi-4.4.0/lib/gcc/arm-eabi/4.4.0/libgcc.a\
        --whole-archive\
        --warn-unresolved-symbols
                                    
.PHONY: all clean


all:
        $(CC) $(cflags)  -c test.c -o test.o
        $(LD) $(shlib_args)  -o libtest.so test.o
#        $(AR) cqs libtest.a test.o
        $(CC) $(cflags) -c hello.c -o hello.o
        $(LD) $(linkfs) -L./ -o hello hello.o -ltest

clean:
        rm -fr *~ *.o *.a hello *.so
点击此处下载 ourdev_636718YNIA6D.rar(文件大小:781字节) (原文件名:Makefile.rar)

出0入0汤圆

 楼主| 发表于 2011-5-6 08:20:23 | 显示全部楼层
谢谢楼上的实例

出0入0汤圆

发表于 2011-5-6 09:21:16 | 显示全部楼层
多参考网上的实例吧

出0入0汤圆

 楼主| 发表于 2011-5-6 11:36:49 | 显示全部楼层
好像可以直接设置环境变量,比makefile这个办法要好,不知道怎么设置的

出0入0汤圆

发表于 2011-5-11 09:39:19 | 显示全部楼层
用 export 命令可以设置环境变量,但是可能会影响到其他程序的编译,因为这个环境所有程序是公用的。
Makefile 独立,方便移植
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 18:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表