1. 首页 > 科技

linux gcc编译报以下错误怎么回事? linux gcc编译命令

linux gcc编译报以下错误怎么回事?linux gcc编译命令

linux中安装GCC时以下错误,各位大侠帮看看是什么原因啊?

错误:没有可用的CC编译工具在你的$PATH中

所以有两种可能:

1 你的系统中本身就没有编译器用来编译GCC的源代码.

2 你的编译器不在$PATH中,所以不能调用,要转到相应的目录中去.

Linux下用g++编译c程序出错。。

我用一个例子来告诉你怎么样在 C++ 里使用C的头文件/函数。

比方说我有一个C的头文件叫 c.h, C的源码文件叫 c.c,内容分别是

c.h:

#ifndef _ASDFD_INCLUDED_

#define _ASDFD_INCLUDED_

#include

extern int test(int a);

#endif

c.c:

#include "c.h"

int test(int a)

{

printf("A = %d\n", a);

return a*a;

}

现在我想在c++中使用c.c中提供的函数test(),我的c++文件名字叫 a.cpp,那么里面跟C有关的部分就要用 extern "C" {} 大括号括起来,看看我的

a.cpp:

#include

using namespace std;

extern "C"

{

#include "c.h"

}

int main()

{

int b = 12;

b = test(b);

cout<<"b = "<

return 0;

}

看到了吧,#include "c.h" 被 extern "C" {}括起来了。

然后是如何编译,先把C文件编出目标文件(.o)来

gcc -c c.c

你会看到生成了 c.o,其实,有目标文件就够了,如果你一定要做成(静态/动态)库文件,也是可以的,不过我这里就不深入了,做成库和直接用目标文件对解决你的问题没有任何区别。

然后再编译C++文件,也就是我的 a.cpp

g++ -o hello a.cpp c.o

看到了吧,我在编译 a.cpp 的时候把C生成的 c.o也加上了。 然后生成 可执行的 hello, 运行

./hello

就可以看到

A = 12

b = 144

关于创建静态库,假定你有3个C文件, a.c, b.c, c.c 提供了你C++要用到的接口,那么可以把这三个C文件编译出来的目标文件放到一个库文件里供C++使用,方法为

先编译出目标文件

gcc -c a.c b.c c.c

这时候你应该看到有 a.o b.o c.o了

然后创建库文件

ar cr libtest.a a.o b.o c.o

这三个目标文件就放入 libtest.a 这个静态库中了,然后编译C++程序 (你的C++程序应该已经按照我前面说的用 extern "C" 把C的接口都括起来了),假定你的 libtest.a 放在 /home/aaa/lib下

g++ -o my.exe my.cpp -L/home/aaa/lib -ltest

就会生成可执行文件 my.exe了。

linux中gcc编译c语言报错???

根据报错知道,没有发现函数的相关声明,这些声明应该是在

Random.h中,并且这个文件应该是你自己写的,主要包括这个类中一些声明。

另外你源文件Random1.c这是C文件呀,不是C++,C中是没有类的,不知道你注意没。

在linux使用gcc编译以下c程序,报错0xff未声明,怎么解决这个问题?

buf[2] = (len>>8) & oxff;

这地方写错了,成了oxff, 应该是0xff