当前位置: 技术问答>linux和unix
makefile 当有c++/c的头文件时如何解决
来源: 互联网 发布时间:2016-01-17
本文导语: 有一个main.cpp 包含了first.h文件和iostream.h文件 一个first.cpp文件包含了first.h文件 如果上面没有iostream.h文件,我可以搞定makefile,刚刚初识makefile,看了一点介绍,大概了解了依赖,编译,链接等用法。但是有了iostream.h...
有一个main.cpp 包含了first.h文件和iostream.h文件
一个first.cpp文件包含了first.h文件
如果上面没有iostream.h文件,我可以搞定makefile,刚刚初识makefile,看了一点介绍,大概了解了依赖,编译,链接等用法。但是有了iostream.h后就一直有问题,是不是还要加路径什么的啊,请高人指点
我的makefile文件:
all:main.o first.o ;cc -o main.o first.o
main.o:main.cpp first.h ;cc -c main.cpp
first.o:first.cpp first.h;cc -c first.cpp
用make执行时会有下面这个错误:
cc -o main.o first.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld returned 1 exit status
一个first.cpp文件包含了first.h文件
如果上面没有iostream.h文件,我可以搞定makefile,刚刚初识makefile,看了一点介绍,大概了解了依赖,编译,链接等用法。但是有了iostream.h后就一直有问题,是不是还要加路径什么的啊,请高人指点
我的makefile文件:
all:main.o first.o ;cc -o main.o first.o
main.o:main.cpp first.h ;cc -c main.cpp
first.o:first.cpp first.h;cc -c first.cpp
用make执行时会有下面这个错误:
cc -o main.o first.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
collect2: ld returned 1 exit status
|
把main.cpp first.cpp first.h放在同一目录下,
makefile如下:
all: main.o first.o
(TAB)g++ -o test main.o first.o
main.o: main.cpp
(TAB)g++ -c main.cpp
first.o: first.cpp
(TAB)g++ -c first.cpp
clean:
(TAB)rm -rf test
(TAB)rm -rf *.o
试过了,可以....
不然你用anjuta直接生成
makefile如下:
all: main.o first.o
(TAB)g++ -o test main.o first.o
main.o: main.cpp
(TAB)g++ -c main.cpp
first.o: first.cpp
(TAB)g++ -c first.cpp
clean:
(TAB)rm -rf test
(TAB)rm -rf *.o
试过了,可以....
不然你用anjuta直接生成
|
要加include路径。编译器的命令行参数应该是:-I。
|
改用g++
或者加入-lstdc++参数
或者加入-lstdc++参数