當前位置:首頁 » 編程軟體 » 開源linux編譯

開源linux編譯

發布時間: 2022-05-10 23:28:58

1. 為什麼linux下開源代碼不能編譯調試

編譯單個源文件
[例如]在屏幕上列印"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選項詳細描述

2. 開源Linux是什麼意思

開源是軟體行業的一個用語開源,就是開放源代碼 軟體包括源代碼,和目標代碼開放源代碼後,可以直接復制和使用。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。伴隨著互聯網的發展,Linux得到了來自全世界軟體愛好者、組織、公司的支持。它除了在伺服器操作系統方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善這個操作系統,使其最大化地適應用戶的需要。

3. 為什麼開源的Linux比Windows還更安全

有了源代碼,確實更容易找漏洞,正因為如此,Linux的漏洞才會更快被找出來(然後得到修正),最終發布的版本才會更安全(這只是Linux安全特性的一個方面)。原則上,安裝好系統以後是沒法修改的(可以先修改源代碼,編譯,然後重新安裝,當然,直接修改二進制文件例外)。任何人都可以隨意修改Linux,但如果對外發布,就要按Linux的許可證來做(不按許可證也行,不過侵犯了版權)。

Linux版本更新是核心開發組說了算(不是由哪一個人來控制),新版本也是這個開發組發布出來。

Linux的代碼貢獻人、維護者、文檔作者、測試人員等遍布世界,人數以千萬計(這其中並不是每個人都會持續貢獻),大部分Linux用戶都是測試員,又有相當一部分人會參與Linux的代碼編寫(源代碼公開,而且相當優秀,不做點什麼,那手會癢的)。可以說Linux調動了整個用戶群,而用戶最清楚他們所用軟體的不足(也最清楚自己想要什麼),這不是哪一個小小的公司能夠相比的。這只是內核的情況,對於其他應用軟體,開發者也同樣是龐大的群體。

Linux和Windows並不是同一類東西。Windows是一個操作系統,而Linux是一個操作系統內核。提Linux系統的內核,指的就是Linux本身(用Linux作為系統內核的操作系統被稱為Linux系統),而Windows的內核,花樣不少,但明顯不會是Linux。

4. 如何在windows下編譯linux的開源程序

總共又三種方案:
mingw+codeblocks,是windows下的gcc編譯工具+跨平台的輕量ide,可以編譯c++的程序,還可以使用wxWidget(跨平台的界面工具)
使用cygwin,是windows下中間件級別的編譯工具。可以在cygwin下用命令行編譯程序。
使用vmware或者其他虛擬機,安裝目標linux系統,並且編譯。這是虛擬硬體級別的編譯工具,其編譯的程序是完全可以在linux系統上運行的。

5. Linux下編程和在Windows下編程有什麼區別聽別人說開源什麼的,可是軟體是開源的就是開源閉

個人見解:

  1. linux是開源的,windows系統閉源。

  2. linux下開源軟體比較多,windows閉源比較多。編程工具也是,linux下大部分編程工具是開源的。

3.從編程代碼來講,linux和windows的區別應該不在於開閉源。而是編譯器不一樣,裡面的庫函數和類什麼的也不一樣,系統api不一樣。

4.編寫的程序用圖不太一樣,windows是桌面應用比較多,linux極少桌面編程。

5.還有就是由於linux系統是開源的,出現一些系統方面問題,你可以直接查看一下系統內核源碼。使用的一些模塊之類也一般是開源的,出現問題,也可以查源碼。

6.其實我沒看清楚,你是問:在windows系統寫代碼和linux的不同?還是問寫一個windows的軟體和linux軟體的不同?


PS:本人不是程序員。答案是抄來的。

6. 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了。

7. C/C++/Linux/編程/開源方面的問題:Mozilla和GNU的區別

許多混亂就始於你不知道License到底是什麼,到底有什麼含義。當你對你的產品使用License時,並不意味著你放棄了任何權利,你依然對其擁有原著作權。License只是授予他們於特定權利來使用你的產品。

License只是把你的作品釋放到公有領域,或者給各個拷貝賦予許可權。也意味著你放棄了版權收入,別人也沒有義務把你列為原作者或貢獻者。

開放源代碼許可協議更容易為他人作出貢獻,而不必尋求特別的許可。它也可以保護你作為原創者的權利,至少確認了你的貢獻。它還可以保證你的工作不為別人所剽竊。
GNU General Public License

GNU General Public License (GPL)的可能是開源項目最常用的許可證。GPL賦予和保證了開源項目開發者廣泛的權利。基本上,它允許用戶合法復制,分發和修改軟體。 這意味著你可以:

* 復制軟體

復制軟體到自己的伺服器,客戶端的伺服器,你自己的電腦,幾乎任何你想要的地方,而且沒有數量限制。
* 發布軟體

發布你想要的軟體,例如,在你的網站提供下載鏈接,刻成光碟,列印出來等等。
* 收取費用

如果你想在向別人提供軟體時收費,如設置在別人的網站上或者其他用途時。GPL允許你這么做,但是你必須給客戶提供一個GPL副本,告訴他們可以在其他地方得到免費版本。當然最好在此之前,告訴客戶,你為什麼收費。
* 可以任意修改

如果你想添加或刪除功能,沒問題。如果想在其他項目中使用部分代碼,也是可以的,但是唯一的限制是此項目也必須按GPL發布。

商業軟體不能使用GPL協議的代碼。
GNU Lesser General Public License

還有另一個GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的許可權較少。一般來說,LGPL比較適合連接到非GPL或者非開源文件的庫文件。由於GPL的規定,使用到部分GPL代碼的軟體,必須也使用GPL,開發人員不能使用GPL來開發收費軟體或者專有軟體。LGPL則沒有這方面的要求,不要求使用與部分代碼相同的 License。

商業軟體可以使用,但不能修改LGPL協議的代碼。
BSD License

BSD License與其他自由軟體License相比,如GPL,限制更少。但是請注意到BSD License兩種版本之間的差別:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它們兩者都是於GPL兼容的自由軟體License。

New BSD License (」3-clause license」) 可以用於任何作為版權聲明和保證許可的免責聲明的目的,可以通過無限長的再分發來得以維持,也就是說如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協 議。它還有一個特殊限制條款,不用特別的許可就是限制使用派生工作的工作者名字,也就是說不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。

New BSD License和Simplified BSD License的主要區別是,後者忽略了非認可條款。

商業軟體可以使用,也可以修改使用BSD協議的代碼。
MIT License

MIT是和BSD一樣寬松的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版里包含原許可協議的聲明,無論你是以二進制發布的還是以源代碼發布的。

* 你可以使用,復制和修改軟體
* 你可以免費使用軟體或出售
* 唯一的限制是,它是必須附有MIT授權協議

商業軟體可以使用,也可以修改MIT協議的代碼,甚至可以出售MIT協議的代碼。
Mozilla Public License 1.1 (MPL)

MPL協議允許免費重發布、免費修改,但要求修改後的代碼版權歸軟體的發起者。這種授權維護了商業軟體的利益,,它要求基於這種軟體得修改無償貢獻版權給該軟體。這樣,圍繞該軟體得所有代碼得版權都集中在發起開發人得手中。但MPL是允許修改,無償使用得。MPL軟體對鏈接沒有要求。

商業軟體可以使用,也可以修改MPL協議的代碼,但修改後的代碼版權歸軟體的發起者。
Common Development and Distribution License

CDDL(Common Development and Distribution License,通用開發與銷售許可)開源協議,是MPL(Mozilla Public License)的擴展協議,它允許公共版權使用,無專利費,並提供專利保護,可集成於商業軟體中,允許自行發布許可。

商業軟體可以使用,也可以修改CDDL協議的代碼。
Apache License

Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布 (作為開源或商業軟體)。需要滿足的條件:

* 需要給代碼的用戶一份Apache License。
* 如果你修改了代碼,需要在被修改的文件中說明。
* 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
* 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改。

Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。

商業軟體可以使用,也可以修改使用Apache協議的代碼。
Eclipse Public License

EPL是一個與CPL相類似的許可證,任何擴展自Eclipse源碼的代碼也必須是開源的。
Creative Commons

Creative Commons(CC)的許可證不太開放源代碼授權,它們通常用於設計項目。 CC許可證有著寬廣的定義,每個定義都會授予一定的權利。它有四個基本部分,可以單獨或者組合使用。下面是部分概述:

* 署名

作者必須是作品的原創者。 除此之外,作品可以修改,分發,復制和以其他方式使用。
* 相同方式共享

工作可以修改,分發等等,但必須在一個許可證下。
* 非商業

可以修改,分發等,但不用於商業目的。 關於什麼是「商業」,說法比較含糊(沒有提供明確的定義),因此您可能需要在自己的項目中澄清這一點。
* 禁止修改

這意味著您可以復制和分發許可工作,但你不能以任何方式修改,或在原有的基礎開發。

商業軟體的使用要遵從CC協議的具體規定,最嚴格的許可證將是「署名,非商業,不能修改」的授權。這意味著你可以自由共享的工作,但不能改變它,你必須把它歸功於原創者。
Common Public License 1.0

Common許可證有一些細節性的規定值得參考:

* 明確了專利授權。一般的開源軟體都明確源代碼的版權人將自己的修改權、復制權等版權權利向公眾許可,但保留署名權,而Common許可證在此基礎上還明確假如源代碼中含有專利權,源代碼專利權人將復制、使用的專有權利向公眾許可。
* 規定可以將源代碼及修改過的源代碼與其他類型的不受本許可證約束的代碼結合,以新產品的形式發布,只要其中經該許可證獲得的源代碼及修改過的源代碼能按該許可證的要求發布即可。
* 細化了該許可證終止的情形,包括發生專利侵權訴訟。
* 明確了一個獨立承擔責任的原則,就是假如按該許可證使用源代碼的使用者將獲得的源代碼應用於商業使用,那麼他就要對在商業應用中出現的由於使用該源代碼程序而產生的侵權訴訟承擔完全責任。這一條規定是比較特殊的,絕大多數開源軟體許可證都不這么要求。

商業軟體可以使用,也可以修改Common協議的代碼,但要承擔代碼產生的侵權責任。

8. 運用linux開源內核怎麼開發自己的系統

《Linux From Scratch》(LFS)是傑勒德·比克曼斯(英語:Gerard Beekmans)等人編寫的安裝Linux的教科書,描述了從源代碼編譯Linux系統的方法。這本書可以從在Linux From Scratch網站上免費下載到。

引用LFS中文指南中的一段話:
「大部分LFSer都認為學習LFS需要有熟練使用Linux的基礎,並且大部分聽說過LFS的人都有一個印象:那是高手的玩具,不是我等菜鳥玩得了的……我不完全贊同,我認為基礎如何並非關鍵,契而不舍的精神和強烈的求知慾才更加重要。大約沒有人贊同學習Linux可以從 LFS 開始,這確實有一定的道理,但是LFS教給你的都是真正的Linux "基礎知識",並且這些知識可以為將來的進一步學習打下絕對扎實的基礎。所以我要用自己的親身經歷鼓勵那些剛剛接觸Linux的新生牛犢勇敢的從LFS開始:沒有基礎不要緊,缺什麼補什麼!當你把LFS做完了,也就脫離"菜鳥"的行列了,用LFS給你的強大翅膀,勇敢地繼續飛翔吧!」

熱點內容
appleid為什麼連接伺服器出現問題 發布:2025-05-13 18:17:37 瀏覽:970
書翁怎麼配置 發布:2025-05-13 18:17:36 瀏覽:911
雲資料庫mongodb 發布:2025-05-13 18:16:12 瀏覽:773
A7編程 發布:2025-05-13 18:15:26 瀏覽:741
python視圖 發布:2025-05-13 18:14:01 瀏覽:758
win為什麼干不過安卓 發布:2025-05-13 18:12:27 瀏覽:586
文件夾只讀win8 發布:2025-05-13 18:11:41 瀏覽:272
xp安裝php 發布:2025-05-13 18:04:30 瀏覽:183
sqlserver介紹 發布:2025-05-13 17:58:00 瀏覽:4
雲閃付安卓版哪個版本好用 發布:2025-05-13 17:57:16 瀏覽:187