分享
 
 
 

Linux下C编程注意事项

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一般可以用gcc编译器

1. 头文件

象conio.h应该变成curses.h

2. 没有itoa函数

itoa?不对吧,标准C/C++里根本没有这个函数。即使在Windows平台下某些编译器提供了该函数[3],没有任何移植性不说,还只能解决int类型(也许其他函数还可以解决long、unsigned long等类型),浮点类型又怎么办?当然,办法还是有,那就是:sprintf。

char s[100];

sprintf(s, "%f", 123.123456);

3. 关于sqrt,sin和cos函数

就算是引入math.h头文件,也不会找到sqrt,sin和cos函数。应该用链接库来解决。

有时候我们使用了某个函数,但是我们不知道库的名字,这个时候怎么办呢?很抱歉,对于这个问题我也不知道答案,我只有一个傻办法.首先, 我到标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程(thread)函数的库文件(libpthread.a). 当然,如果找不到,只有一个笨方法.比如我要找sin这个函数所在的库. 就只好用 nm -o /lib/*.so|grep sin>~/sin 命令,然后看~/sin文件,到那里面去找了. 在sin文件当中,我会找到这样的一行libm-2.1.2.so:00009fa0 W sin 这样我就知道了sin在 libm-2.1.2.so库里面,我用 -lm选项就可以了(去掉前面的lib和后面的版本标志,就剩下m了所以是 -lm).

4. Makefile出现missing separator的错误

原因是目标声明行下面的命令行必须用Tab键分开(而不是空格)

PG: PG.o

[ Tab键 ]gcc -o PG -O -O2 -lm /lib/ld-2.2.93.so PG.o

PG.o: PG.c pointgroup.h

[ Tab键 ]gcc -c -O -O2 PG.c

clean:

[ Tab键 ]rm -f *.o

5. 注意文件的DOS格式字符

调试的时候应该注意文件可能有DOS格式字符,必须先用如下命令去掉文件中的DOS格式字符:

tr -d <file> tmp_file

mv tmp_file <file>

附:

*******************************************************

gcc 常用命令行列表

*******************************************************

http://www.chinaunix.net 作者:wayne168 发表于:2003-04-19 16:02:55

-o FILE

指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.

-c

只编译不链接

-DFOO=BAR

在命令行定义预处理宏FOO,其值为BAR

-IDIRNAME

将DIRNAME加入到头文件的搜索目录列表中

-LDIRNAME

将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库

-static

链接静态库,即执行静态链接

-lFOO

链接名为libFOO的函数库

-g

在可执行程序中包含标准调试信息

-ggdb

在可执行程序中包含只有GNU debugger才能使别的达两条是信息

-O

优化编译过的代码

-ON

指定代码优化的级别为N,o<=N<=3

-ansi

支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分

(但这一选项并不能保证生成ANSI兼容的代码)

-pedantic

允许发出ANSI/ISO C标准所列出的所有警告

-pedantic -errors

允许发出ANSI/ISO C标准所列出的所有错误

-traditional

支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系

-w

关闭所有警告,建议不要使用此项

.Wall

允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告

-werror

把所有警告转换为错误,以在警告发生时中止编译过程

-MM

输出一个make兼容的相关列表

-v

显示在编译过程的每一步中用到的命令

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有