gcc编译告警视为错误
㈠ gcc编译错误!
提示说需要-fPIC编译,然后在链接动态库的地方加上-fPIC的参数编译结果还是报错,需要把共享库所用到的所有静态库都采用-fPIC编译一边才可以成功的在64位环境下编译出动态库。
这里的-fPIC指的是地址无关代码
你看看这里的这篇文章吧:http://www.cnblogs.com/lightsalt/archive/2011/10/19/2217628.html
㈡ 请教gcc编译下的几个警告该怎么去除
C 语言源程序中的错误分为几类,其中有:必须要修改的错误(例如:语法错误),这类错误如果不进行修改,那么源程序就无法编译通过和运行;另外还有就是:警告错误(例如:对某个变量没有赋初值就使用它),该类错误就是:编译器能够让你的源程序通过,但是你在运行源程序时,得到的运行结果却未必是正确的(例如:编写一个累加器的程序,如果不对总和进行清零,那么每运行一次,结果可能就会是随机的)。所以说,如果 gcc 编译器下提出了警告错误,你就必须要仔细阅读源程序,找出其相对应的BUG来,这样才能够确保你的程序运行结果是正确的。
㈢ gcc编译错误
用带-w选项的gcc即可关闭警告,例如:
gcc -w a.c
极不推荐这么做,会让你养成非常不好的编码习惯
*********************************************
程序不完整,GCC是对ANSI C遵循最严格的编译器,这样随意的代码当然无法编译,修改如下:
#include <stdio.h> /*注意这里*/
int main(void) /*注意这里*/
{
int a,b;
for (a=1;a<=100;a++)
{
for (b=2;b<=a;b++)
{
if((a%b)==0)
{
if(a==b)
printf ("%d \n",a);
else
break;
}
}
}
return 0; /*注意这里*/
}
㈣ GCC编译错误,请问如何解决hidden symbol
貌似,是mltest这个符号的浮点型没有定义,你需要找到它需要链接的库,这个具体我也不知道,你在看看,好像你这个是嵌入式相关。
在Windows环境下,直接输出重新向不行。
安装C-Free4.0(免费版),用它打开你的C源代码文件 c:\1.c,编译,在窗口下方就会给出错误提示信息,鼠标右键单击提示信息,选择“全部复制”,打开记事本,粘贴,另存该文件 c:\1.txt 就可以了。
另外,C-Free 4.0 用的是 MinGW 2.95 的编译器,也是GCC的一个版本。
㈤ gcc编译C语言报警告
open
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>蔽高
int open(const char *pathname, int flags);
int open(const char *pathname,
int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
-------------------------
openat
#include <fcntl.h>
int openat(int dirfd, const char *pathname, int flags);
int openat(int dirfd, const char *pathname, int flags, mode_t mode);
-------------------------
lseek
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
你可以看
man 2 open
man 2 openat
man 2 lseek
--------------------------
问题是否为:
#include <宏扒尺sys/types.h>
#include <sys/stat.h>
头此滑文件缺失?
㈥ Xcode 在用gcc编译的时候出现警告
代码的运行编译是从上往下的,出现这个警告的原因是你写的某个函数里面调用了另一个函数,而这个另一个函数是第一次出现,系统辨认不出,当然你是写在了下面。
所以解决这个问题有两个方法:1在代码最上端声明所有函数。 2把该函数内调用的函数写到该函数的上面。
㈦ gcc编译,出现错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ........
这个我也遇到了,有毕皮以下几种可能:
1,有可能是漏写;}或者将)写成},或者是中英文混写,如将英文的)写成中文的)。
2.机器码本身的问题,需要对数据类型进行typedef,如,使用int类型或者 char类型,分别进行定义,typedef in DTYPE,typedef char PCHAR,这一点没核培试验过,是看别人的
3.没有加上需要的头文件。这一点我碰到了,很神奇。
4.C和C++混编,如在C中使用class inline等,需要加上extern告诉编译器。因为C和C++的编译时找不同的内部代码,如果不告诉他,他会找一种,比如说全部找C的内部解释,那么C++部分的就会出错;
5、明显的错误,比手氏差如c代码,结果写了个函数 bool testIt;而bool默认没有定义,所以报错;改成int的就行了;