Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132759
  • 博文数量: 40
  • 博客积分: 2228
  • 博客等级: 大尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-12 11:48
文章分类

全部博文(40)

文章存档

2011年(11)

2010年(29)

我的朋友

分类: LINUX

2010-07-17 13:06:27

下面为在编程中出现的问题及解决的方案:
1、warning: incompatible implicit declaration of built-in function ‘printf’
解决方法:在头文件中添加#include,问题可以出现在没有添加printf的文件,gcc编译的时候就在/usr/include/中查找printf的头文件,所有能够编译成功。
2、undefined reference to 'pthread_create'问题的解决
解決方法:pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a。
所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。
在编译中要加 -lpthread参数
gcc -o pthread pthread.c -lpthread
 

 
另外有两个问题:
1、gcc编译的时查找头文件的目录顺序?
2、是否有相应的文档(解决方法)来处理这些gcc的所有警告和错误?
3、下面两段的问题:
 
 

#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int main(void){
    char s[]="12345678";
    char d[]="abcde";
    printf("&s=%p,&d=%p\n",&s,&d);
    printf("s=%s,d=%s\n",s,d);
    strcpy(d,s);
    printf("s=%s,d=%s\n",s,d);
    printf("&s=%p,&d=%p\n",&s,&d);
    return 0;
}


(1)、当数组d的长度大于、等于或小于数组s的长度1时没有问题。

(2)、当数组d的长度小于数组s的长度大于1时,会出现两种问题,当数组s的长度小于9时没有问题,如果大于9则出错,一切问题源于strcmp函数。

阅读(1727) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~