A. 问一下,为什么代码在RedHat里面gcc编译出错,提示找不到mole.h等头文件
你拷贝到/usr/include/linux的mole.h先删除了,根本不是在这个目录
你需要首先安装对应内核版本的头文件,不是随便一个版本就可以~一般情况下内核头文件放在/usr/src/下面。
你这个钩子函数一看就知道是运行在内核空间的,以模块的方式安装使用的,不是你直接就可以用gcc安装的~最简单的办法是用makefifle,具体操作你找下如何编译内核模块或者看下源码自带的说明文档。
PS:你是全部都拷贝进去了吗?这个.h本身会有很多其他的引用.
另外,这个编译时我上面说了用makefile来做,你看下这里:
http://..com/question/262194193.html
B. 为什么使用GCC编译器老是错误❌
不是gcc的问题,是你代码写错了。
问题1:main的入口参数要么没有,要么就是2个,你是1个。
问题2:字符串定义错误,char后面跟string?
C. 用高版本编译低版本gcc的问题
据说要低版本的才能编译高版本的
D. 用GCC编译器编译出来的程序运行出错,请高手帮忙解决!
#include<iostream>
usingnamespacestd;
intmain(void){
inti,sum=0;
for(i=1;i<=100;i++)
sum+=i;
cout<<sum<<endl;
return0;
}
code本身完全没有问题。我认为是你GCC没有安装或配置好。
E. linux更新系统后程序编译不了
一般来说,linux更新系统后程序编译不了是因为更新后,系统的编译器或运行库改变导致的。比如更新后系统中的 GCC 版本更新了,而程序以前是按照旧版本的 GCC 进行编译的,因此就会出现编译失败的情况。
F. gcc编译简单的c++出现错误<unresolved overloaded function type >size type
gcc编译简单的c++出现错误<unresolved overloaded function type >size type,是代码错误造成的,解决方法如下:
1、首先将编辑好的程序保存,这里写好程序,并保存在了桌面上,如图所示。
G. windows64 matlab 环境下 gcc编译问题
你是要编译mex对吧?应该在matlab的命令行里调用mex来实现啊。。
matlab的那几个dll应该是给windows准备的,而且是运行时使用,编译的时候应该用lib。更gcc下面好像根本就没有dll这种格式
我用过linux下的matlab,人家也不会生成mexw64这种格式,而是mexa64.
总之,感觉你这就是在给自己找麻烦。。什么环境应该用什么编译器,VS好好的干嘛不用。。
H. gcc g++ 命令行编译程序出现的问题
那个是软件的输出窗口,我没用过MINgw,但你可以看看那个软件的设置菜单,把输出窗口关闭就可以了.编译时要加一个选项: -mwindows ,例如:
gcc -mwindows -o test.exe main.c
或者
g++ -mwindows -o test.exe main.cpp .<exe是你自己的.exe文件名>
I. 为什么arm韦东山的代码(gcc开发的)修改成ads开发编译出错,小弟只有15个币了,全部搭上,跪求高手指点
一般来说,这个问题是语法错误。有一些非法字符。比如,你不小心混入了中文的字符。比如,中文的空格之类。
J. linux下安装了6.1.0版本的gcc,但cmake时用的还是旧版的gcc
这个应该是动态库的问题吧,我之前遇到的问题就是这样解决的:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC\检查动态库
mv /usr/lib64/libstdc++.so.6 /tmp
ln -s /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
首先可以检查目前的链接库:
[root@ops-test01 gcc-6.1.0]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
果然是老的链接 ,GLIBCXX_3.4.13往后的都没有了
搜索新的链接库位置:
root@ops-test01 gcc-6.1.0]# find / -name libstdc++.so.6
/usr/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6
/usr/local/src/gcc-6.1.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-6.1.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-6.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/root/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libstdc++.so.6
/root/vmware-tools-distrib/lib/lib64/libstdc++.so.6
/root/vmware-tools-distrib/lib/lib64/libstdc++.so.6/libstdc++.so.6
/root/vmware-tools-distrib/lib/lib32/libstdc++.so.6
/root/vmware-tools-distrib/lib/lib32/libstdc++.so.6/libstdc++.so.6
查找链接客户的内容,然后确定/usr/local/lib64/libstdc++.so.6是新的链接库,
移除老的链接库,然后关联新的链接库:
[root@ops-test01 gcc-6.1.0]# mv /usr/lib64/libstdc++.so.6 /tmp
[root@ops-test01 lib64]# cd /usr/lib64
[root@ops-test01 lib64]# ln -s /usr/local/lib64/libstdc++.so.6 libstdc++.so.6
[root@ops-test01 lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
ok,现在在编译试试!!更多 Linux知识建议参考《Linux就该这样学》,加油!!!