各位老兄帮忙了!写makefile进行编译程序时,找不到iostream map vector

wanliduxing 2003-06-19 05:27:39
在Linux下用stl的类需要用到iostream map vector这些类库,
我编了一个最简单的hello程序,就能找到iostream。
hello.cpp:
#include <iostream>
int main()
{
cout<< " hello "<< endl
}

Makefile:
LD = ld
AR = ar
RM = rm
CP = cp

CC = gcc -E
CPP = g++
all:hello

hello:hello.o
$(CPP) -o hello hello.o
hello.o:hello.cpp
$(CPP) -c hello.cpp

而我自己的程序里的Makefile试这样写的:

STL_INL=-I../stl
CFLAG =$(STL_INL) -I../MyDoc -c
TRGTLIB = MyLib.a

OBJS=1x.o 2x.o

$(TRGTLIB) : $(OBJS)
$(AR) r $(TRGTLIB) *.o
$(CP) $(TRGTLIB) ..\..\lib

.SUFFIXES: .s .c .cpp .o .a .out

.c.o :
$(CC) $(CFLAG) -o $*.o $*.c
.s.o:
$(AS) $(AFLAG) -o $*.o $*.s

clean:
$(RM) *.o
$(RM) $(TRGTLIB)

请问高手:为什么我的程序找不到?

...全文
138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiejun 2003-06-23
  • 打赏
  • 举报
回复
认后辍名的,改到.cpp就行了。
一般默认,.c的用gcc, .cpp的用g++
wanliduxing 2003-06-23
  • 打赏
  • 举报
回复
ok, 这个问题我已经解决,用c++或者g++都行。谢谢!给分了!

还问楼上,
LD =ld
OBJS = xx.o
$(LD) $(OBJS) $(LIBS) -o $(TRGTEXE)

在LD的时候就出错:
xx.o: file not recognized: File format not recognized
这是为什么?
是不是ld的用法不对?
sunzm 2003-06-23
  • 打赏
  • 举报
回复
using namespace std;
或者 std::cout.................
ahr 2003-06-20
  • 打赏
  • 举报
回复
用 g++
wanliduxing 2003-06-20
  • 打赏
  • 举报
回复
up! !

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧