免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1824 | 回复: 6
打印 上一主题 下一主题

[C++] 请帮帮忙,看看多个c++程序编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-06 22:35 |只看该作者 |倒序浏览
有下面几个程序:

//fun.h
#ifndef FUN_H
#define FUN_H
double fun(double);
#endif

//fun.cpp
#include "fun.h"
#include <math.h>
double fun(double x){
return sin(x);
}

//foo.h
#ifndef FOO_H
#define FOO_H
double foo(double,double);
#endif
//foo.cpp
#include "foo.h"
#include "fun.h"
double foo(double x,double h){
...
return fun(x+h);
...
}

//main.cpp
#include <iostream>
#include "foo.h"
#include "fun.h"
using namespace std;

int main(int argc,char*argv[]){
      cout<<foo(3,5);
      return 0;
}


//makefile
main:main.o foo.o fun.o
    g++ -o main main.o foo.o fun.o
main.o:main.cpp foo.h fun.h
   g++ -c main.cpp
foo.o:foo.cpp foo.h fun.h
   g++ -c foo.cpp
fun.o:fun.cpp fun.h
   g++ -c fun.cpp
clean:
   rm *.o

请大虾指点我的makefile怎么老是说没有定义fun?谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-01-07 10:05 |只看该作者
连接的时候加 -lm
main:main.o foo.o fun.o
        g++ -o main main.o foo.o fun.o -lm

论坛徽章:
0
3 [报告]
发表于 2009-01-07 12:07 |只看该作者
还是不行啊!

未命名.JPG (20 KB, 下载次数: 30)

未命名.JPG

论坛徽章:
0
4 [报告]
发表于 2009-01-07 12:37 |只看该作者
g++ -o main main.o foo.o fun.o
和你图片中的 不一致的啊

论坛徽章:
0
5 [报告]
发表于 2009-01-07 15:47 |只看该作者
我刚才试验过了,你的程序,可以成功编译
OS:freeBSD6.4

论坛徽章:
0
6 [报告]
发表于 2009-01-07 16:03 |只看该作者

回复 #1 foureyes 的帖子

我用cygwin 也可以make成功

论坛徽章:
0
7 [报告]
发表于 2009-01-09 14:31 |只看该作者
我在unix-center上面,freebsd6.2,编译的时候就是上面贴图的错误,和我给的代码类似,不知道是什么原因?编译的时候难道不可一迭代似的调用吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP