打印
[嵌入式linux]

linux下-static编译报错

[复制链接]
1097|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ad25fgh30|  楼主 | 2014-3-19 08:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ad25fgh30 于 2014-3-19 08:34 编辑

  gcc -static send.c -o send
collect2: ld returned 1 exit status

在编译自己已经I写好的.c文件时报的错误,因为要将程序移植到arm板子上。使用arm-linux-gcc编译与gcc都可以编译通过,但当使用arm-linux-gcc -static编译与gcc -static 编译时都报错 collect2: ld returned 1 exit status。
求大神指点啊
程序

        #include <stdio.h>  
        #include <string.h>  
        #include <malloc.h>  
        #include <sys/types.h>  
        #include <sys/stat.h>  
        #include <fcntl.h>  
        #include <unistd.h>  
        #include <termios.h>  
        #include "math.h"  
        #define max_buffer_size 100 /*定义缓冲区最大宽度*/  
/*********************************************************/  
        int fd,s;  
        int open_serial(int k)  
        {  
        if(k==0) /*串口选择*/  
        {  
        fd = open("/dev/ttyUSB0",O_RDWR|O_NOCTTY); /*读写方式打开串口*/  
        perror("open /dev/ttyUSB0");  
        }  
        else  
        {  
        fd = open("/dev/ttyS1",O_RDWR|O_NOCTTY);  
        perror("open /dev/ttyS1");  
        }  
        if(fd == -1) /*打开失败*/  
        return -1;  
        else  
        return 0;  
        }  
        /********************************************************************/  
        int main()  
        {  
        char hd[max_buffer_size],*rbuf; /*定义接收缓冲区*/  
        int flag_close, retv,i,ncount=0;  
        struct termios opt;  
        int realdata=0;  
        /*******************************************************************/  
        open_serial(0); /*打开串口1*/  
        /*******************************************************************/  
        tcgetattr(fd,&opt);  
        cfmakeraw(&opt);  
        /*****************************************************************/  
        cfsetispeed(&opt,B9600); /*波特率设置为9600bps*/  
        cfsetospeed(&opt,B9600);  
        /*******************************************************************/  
        tcsetattr(fd,TCSANOW,&opt);  
        rbuf=hd; /*数据保存*/  
        printf("ready for receiving data.../n");  
        retv=read(fd,rbuf,1); /*接收数据*/  
        if(retv==-1)  
        {  
        perror("read bad1"); /*读状态标志判断*/  
        }  
        /*************************开始接收数据******************************/  
        while(*rbuf!='/n') /*判断数据是否接收完毕*/  
        {  
        ncount+=1;  
        rbuf++;  
        retv=read(fd,rbuf,1);  
        if(retv==-1)  
        {  
        perror("read bad2");  
        }  
        }  
        /*******************************************************************/  
        printf("The data received is:/n"); /*输出接收到的数据*/  
        for(i=0;i<ncount;i++)  
        {  
        printf("%c",hd);  
        }  
        printf("/n");  
        flag_close =close(fd);  
        if(flag_close == -1)/*判断是否成功关闭文件*/  
        printf("Close the Device failur!/n");  
        return 0;  
        }  
        /****************************结束***********************************/  

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

35

帖子

0

粉丝