linux下使用makefile问题集合
来源:互联网 发布:国外羽绒服品牌 知乎 编辑:程序博客网 时间:2024/06/06 02:47
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题1. make中使用gcc编译一个c源文件的时候出现如下错误:
make: *** 没有规则可以创建“xxxx.o”需要的目标“gcc”。 停止。
解决方法:查看Makefile文件,可以看到:
xxxx.o: xxxx.c \xxxx.h \$(CC) -c xxxx.c $(CFLAGS)把"xxxx.h \"后面的"\"去掉,问题解决。make语法,最后一行不需要"\"。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题2. 目录下有一个用C++编译生成的.so动态库文件,使用c文件调用这个动态库,出现报错如下:
error: expected '=', ',', ';', 'asm' or '__attribute__' before xxxx...
网上整理原因有以下几个:
1.原因:用gcc编译cpp文件。解决:用g++编译cpp文件
注:用Makefile很容易误用gcc的,类似问题遇到过无数次……还有连接的时候也是,有些版本的make喜欢用gcc连接,直接挂掉。我通常都在头部加一句CC=g++ CFLAGS=-x c,感觉挺好用。
2.原因:包含头文件时缺少“#”或者函数“{”与“}”没有成对的出现
3.原因:新加的内容与头文件冲突
注:error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘XXX’,如果XXX是类名,那么几乎可以肯定地说是你的C文件里包含了C++头文件。楼主遇到的正是这个问题。建议不要使用10楼的方法。最好的方法是,不要去包含c++头文件!如果你的C文件要用到类,干脆直接将C文件改成CPP文件得了。缺少标点符号和全半角的提示是不一样的。
4 原因. tyepdef int (*psum)(int,int);
typedef拼写错误。
解决方法:
考虑到这里是在c中引用到C++编译的.so动态库,故而,将c文件改为cpp文件,并使用g++编译器重新编译。成功。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题3. 使用如下makefile文件编译的时候出现异常:
arm-linux-gcc -c blacklist.c -I./includearm-linux-gcc -o CreateBlackList blacklist.o -I./include -L./lib -lxml2arm-linux-gcc -Wall -O2 -L./lib blacklist.c CreateBlackList -o blacklist
makefile文件内容大致如下,
CC=arm-linux-gccCFLAGS=-Wall -O2TARGET=CreateBlackList HDFLAGS=-I./includeLDFLAGS=-L./libblacklist: $(TARGET)$(TARGET): blacklist.o $(CC) -o $(TARGET) blacklist.o $(HDFLAGS) $(LDFLAGS) -lxxxx %.o: %.c $(CC) -c $< $(CLAGS) $(HDFLAGS)clean: rm -f *.o rm -f $(TARGET)
原因:make目标blacklist和其依赖文件blacklist.o名字一样,导致编译失败;
解决方法:将编译目标名字修改为black,编译成功。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题4. xxxxx
解决方法:
- linux下使用makefile问题集合
- linux下makefile使用
- linux下 使用makefile
- 在Linux下使用MySQl遇到的小问题集合
- 在Linux下使用qmake生成makefile
- linux 下makefile的使用举例
- 在linux下makefile的使用
- Linux下makefile的基本使用
- Linux下使用Autotools生成Makefile
- linux下使用autotools创建makefile文件
- Linux下gcc,g++,makefile的使用
- Linux下Makefile生成工具automake使用
- linux下使用Makefile编译程序入门介绍
- linux下makefile的使用技巧
- linux下开发遇到的问题集合
- Linux下makefile 大全
- linux下makefile的
- Linux下makefile教程
- 自创算法——暴力自动机
- 先上两张图 搞起
- 使用JS播放HTML5中的音频
- 同步屏障CyclicBarrier
- 【新人杂记】sleep 和 wait 的区别
- linux下使用makefile问题集合
- 1038. Recover the Smallest Number
- SQL Server触发器详解
- Android基础—Camera调用及注册
- AndroidStudio部署项目时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- [Android新手学习笔记24]-常用的UI控件的单位、属性
- 非诚勿扰2最后李香山人生告别会上的孙红雷的台词
- 严谨的单例写法(转)
- 什么是旅行?为什么要去旅行!