LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: hxl666888

我只看过谭浩强的C语言程序设计,下一步应该怎么做?

[复制链接]
发表于 2003-7-28 13:04:56 | 显示全部楼层
大家都认为你精通C语言的时候,你就是精通C语言的专家了。
 楼主| 发表于 2003-8-1 10:57:28 | 显示全部楼层

谢谢大家

谢谢大家
发表于 2003-8-3 03:36:07 | 显示全部楼层
就上 Linux 吧...
发表于 2003-10-7 01:56:49 | 显示全部楼层
在linux的c编程里面#include<math.h>,然后调用sqrt()函数,编译不能通过。具体错误提示信息忘了。但是加上gcc test.c -lm就可以了。关键在-lm。说是要调用linux的数学运算库函数哦!但是具体是回事完全没有弄懂。谁有没有相关的资料。谢谢!
发表于 2003-10-7 02:10:32 | 显示全部楼层
不是“要调用linux的数学运算库函数”,是连接libm库,因为gcc默认不连接libm,象<stdio.h>里的函数是默认连接的,所以你不用指定gcc也会直接连接好,但是有很多库gcc是不自动连接的,必需指定才行。
比如你的程序用了<curses.h>的函数,编译的时候必需指定-lcurses连接libcurses库。
发表于 2003-10-7 17:42:56 | 显示全部楼层
在man里面会有说明
发表于 2003-10-9 01:19:16 | 显示全部楼层
谢谢libinary版主,但是这些库是干什么用的啊?我直接包括一个头文件不就行了么?里面的函数都写好了的。为什么还非要去调用库呢?不觉的很麻烦么?再说如果是初学者的话,对于为什么要调用库和调用什么样的库简直就是一场恶梦。
发表于 2003-10-9 08:31:57 | 显示全部楼层
多了解一下编译过程你就会知道,程序的编译是分成几步进行的。先要把源程序编译成目标代码。这时如果不包含必要的头文件,是不会通过的。然后再连接有关的库文件,此时要形成真正二进制可执行文件。要将库文件和目标代码一起进行地址重新定位,以便程序装入内存时,可以对库文件寻址。
发表于 2003-10-20 17:50:18 | 显示全部楼层
因为不是计算机专业毕业的,没有学过编程原理。所以对于KJ501版主说的那些理解的不透!
发表于 2003-10-20 20:09:51 | 显示全部楼层
我替版主举个例:
你写的C程序一般会用到 printf() 吧?但你学C时也知道任何函数都必须给出其说明和实现。这个函数的说明在哪里呢?在头文件中
#include <stdio.h>
但你仔细看那个头文件,其中并没有printf的实现,它的实现是在库libstdc(记错了?)中。
你写的C程序在编译时就会到标准库中去找printf()的实现,找到了,就把它链接到你的程序中,运行时就可以输出信息了。如果找不到,就会报错。出现xxxx.o找不到的消息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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