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就該這樣學》,加油!!!