linux編譯多個源文件
你犯了個低級錯誤 ,try是 關鍵字 不能用作 class 名字 ,你只要改成Try就行了
哈哈
② 如何在linux下編譯,執行c程序
1.編譯單個源文件
[例如]在屏幕上列印"Hello,Linux."
[源代碼]#include<stdio.h
#include<stdlib.h
int main(int argc,char **argv){printf("Hello,Linux.\n");exit(0);}將源文件保存為hello.c,開始進行編譯
$gcc -o hello hello.c
編譯成功完成後,在當前路徑下,生成一個名為hello的文件,然後執行
$./hello在屏幕上,你將會看到列印結果:Hello,Linux.
說明:在默認情況下,編譯成功完成後,會在當前路徑下,生成一個名為a.out的文件,然後執行$./a.out便可列印結果,但通常可以通過選項-o來指定自己的可執行程序名稱;
2.編譯多個源文件
3.使用外部函數庫
4.使用共享函數庫和靜態函數庫5.gcc選項詳細描述
③ linux編譯 java 文件
1.首先用vim 在linux下編寫一個名為Test.java的文件,代碼如下:
class
Test{ public static void main(String []args){
System.out.println("test input main arguments");
System.out.println(args[0]+" "+args[1]);
System.out.println("end of main"); } }
代碼很簡單,只有一個main函數用來輸出我輸入的前兩個參數,注意前兩個參數如果不輸入會拋數組越界 的異常。
2.vim編輯完後按esc進入命令模式,然後shift+ZZ保存並退出。然後通過javac Test.java 即可對該文件進行編譯,編譯會可以看到在該目錄下生成了一個Test.class文件。
3。編譯時沒有拋出異常說明代碼成功編譯,接下來看看怎麼運行吧,其實也很簡單,就通過如下命令即可:
java Test hello world
輸出結果是:
test input main arguments
hello world
end of main
④ linux環境下如何編譯包含多個源文件的c/c++程序
多個文件一起編譯
用法:#gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
⑤ 如何編譯linux源代碼
首先uname -r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。
最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
⑥ linux 怎麼編譯c的源程序的gcc,編譯命令是什麼
在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。
先將源文件編譯成目標文件:gcc - c hello.c
生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux ");
}
(6)linux編譯多個源文件擴展閱讀:
在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
網路_gcc
⑦ 如何實現linux下的C++多文件編譯
要分開編譯,然後鏈接,比如
$ g++ print.cpp -c
$ g++ test.cpp -c
$ g++ test.o print.o -o mytest
這里的-c表示只編譯。因為你有兩個文件,所以編譯兩次。編譯後會生成.o的文件。
然後把這些在鏈接起來就可以了。-o表示輸出的文件。
⑧ 多個源文件的編譯和鏈接
這個問題我也曾經遇到過,後來過了好久才弄懂。這個一般是把程序分在.h文件和.c文件,在.h文件中給出函數聲明定義基本的數據結構,在.c文件中實現相應的.h文件中的函數。然後要使用相應的介面或函數就包含.h文件,就是#include 相應的.h 文件。在編譯生成的時候編譯器會根據項目的makefile 來編譯生成。如果想比較清楚的了解,可以看看linux 下的make工具和makefile ,make 就是根據makefile 來編譯生成項目。vc++6.0底層的過程也類似,但是被界面屏蔽了。
⑨ linux系統下,有多個源文件和頭文件要同事編譯,寫在makefile里,main()函數重定義怎麼辦
同一個程序只能有一個main函數,
你編譯成多個可執行程序就好了
⑩ 求助:在linux下,我有兩個.C源文件,怎麼編譯到一起
編譯沒問題,但不能連接成一個程序,否則就會出現 main() 函數的重復定義錯誤
最簡單的辦法是,寫一個 shell 腳本 c,內容是:
./b
./a
chmod a+x c