debian編譯
1. debian編譯程序centos運行
在Debian系統中編譯的程序,通常不能在CentOS系統上直接運行,因為兩個系統的底層庫和依賴項可能不同。解決方法如下:
在CentOS中安裝編譯時所需的依賴項和庫。可以使用CentOS自帶的包管理器yum來安裝,例如碰嫌橋:
plaintext
Copy code
sudo yum install gcc
如果需要其他依賴項和庫,可者斗以根據程序的要求進行安裝。
在Debian中交叉編譯程序。交叉編譯是指在一個系統上編譯另一個系統的程序,需要安裝交叉編譯工具鏈和對應的庫文件。具體的方法可以參考相關的文檔或者教程。
使用Docker容器在CentOS中運行Debian程序。Docker是一款容器化技術,可以在容器中運行不同的操作系統和程序。可以使用Docker在CentOS中創建一個Debian的容器,並在容器中運行程序。具體的方法可以參考相關的文檔或者教程。
在CentOS中安裝Debian虛擬機。可以在CentOS中安裝一個Debian虛擬機,然後在虛擬機中編譯和運行程序。具體的方法可以參考相關的文檔或者教程。
請注意,在進行以上操作時,需要保證程序所需的笑猛依賴項和庫已經正確安裝,並且程序的設置和配置在不同的系統中保持一致。如果以上方法均無法解決問題,可以考慮將程序重新編寫或者在CentOS中使用類似的程序代替。
2. DEBIAN安裝軟體apt-get與源代碼編譯的區別和優劣
在 linux 系統中,使用 apt-get 獲取軟體並安裝自動化更高一些。但是有些驅動程序是沒有現成的,是必須需要自行從網上下載後,再和系統的內核一起進行編譯。如果是從網上下載源代碼來進行編譯的話,用戶操作起來就得麻煩一些。
3. 如何在Debian或Ubuntu上編譯virt-manager
眼下有幾種不同的方法可以管理在KVM虛擬機管理程序上運行的虛擬機。比如說,virt-manager就是一種廣受歡迎的基於圖形用戶界面(GUI)的前端工具,可用來管理虛擬機。不過,如果你想在無外設伺服器上使用KVM,那麼基於GUI的解決方案並非理想方案。這時候,virsh就派得上用場。virsh是一種命令行工具,可用於管理來賓虛擬機(guest
VM)。就其底層而知纖前言,virsh依賴libvirtd服務,該服務可以控制幾種不同的虛擬機管理程序,其中包括KVM、Xen、QEMU、LXC和OpenVZ。
如果你想讓虛擬機的配置和管理實現自動化,virsh等命令行管理界面也大有用處。此外,virsh支持多種虛擬機管理程序,這就意味著你可以通過同一個virsh界面,管理不同的虛擬機管理程序。
我在本教程中將演示如何在Debian或Ubuntu上使用virsh,從命令行運行KVM。
第一步:證實主機支持硬體虛擬化
作為第一步,證實主機的處理器配備硬體虛擬化擴展機制(比如英特爾VT或AMD-V),KVM需要這樣的機制。下面這個命令就能證實一點。
$
egrep '(vmx|svm)' --color /proc/cpuinfo flags : fpu vme de
pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
mmx fxsr sse sse2
ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl
xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3
cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand
hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi
ept vpid fsgsbase smep
如果輸出結果並不含有vmx或svm標記,這意味著主機的處理器沒有支持硬體虛擬化的功能。因而,你就無法在主機上使用KVM。證實了主機處理器隨帶vmx或svm後,接下來繼續安裝KVM。
第二步:安裝KVM
使用apt-get,安裝KVM及相關的用戶空間工具。
$ sudo apt-get install qemu-kvm libvirt-bin
下一步,將你的用戶ID添加到libvirt群組,那樣你就能以非root普通用戶的身份,管理虛擬機了。作為上面安裝KVM的一部分,必須創建libvirt群組。
$ sudo adser [youruserID] libvirt
重新裝入更新後的群組成員信息,如下所示。看到要求豎擾輸入密碼的提示後,輸入你的登錄密碼。
$ exec su -l $USER
這時候,你應該能夠以普通搭清用戶的身份運行virsh了。為了測試一下,不妨試一試下面這個命令,它會列出可用的虛擬機(目前沒有一個虛擬機)。要是你沒有遇到許可權錯誤,這意味著到目前為止,一切正常。
$ virsh --connect qemu:///system list Id Name State
4. 如何在 Ubuntu/Debian/Linux Mint 中編譯和安裝 wxWidgets
1. 下載 wxWidgets
第一步你需要從wxwidgets.org下載wxWidgets源碼文件。
做完後,解壓到目錄。
2. 設置編譯環境
要編譯wxwidgets,我們需要一些工具包括C++編譯器,在Linux上是g++。所有這些可以通過apt-get工具從倉庫中安裝。
我們還需要wxWidgets依賴的GTK開發升培老庫。
$ sudo apt-get install libgtk-3-dev build-essential checkinstall
這個叫做checkinstall的工具允許我們為wxwidgets創建一個安裝包,這樣之後就可以輕松的使用包管理器來卸載。
3. 編譯 wxWidgets
進入到wxWidgets解壓後的目錄。為了保持清潔,創建一個編譯用的目錄。
$ mkdir gtk-build
$ cd gtk-build/
現在運行configure和make命令。每個將花費一些時間來完成。
$ ../configure --disable-shared --enable-unicode
$ make
"--disable-shared"選項將會編譯靜態庫而不是動態庫。
make命令完成後,編譯就成功了。是時候安裝wxWidgets到正確的目錄。
更多信息請參考install.txt和readme.txt,這可在wxwidgets中的/docs/gtk/目錄下找到。
4. 安裝 checkinstall
現在我們不使用"make install"命令,我們使用checkinstall命令來創建一個wxwidgets的deb安裝包。運行命令:
$ sudo checkinstall
checkinstall會詢問幾個問題,請保證在提問後提供一個版本號,否則將會失敗。
完成這一切後,wxWidgets就安裝好了,deb文件也會創建在相同的目錄下。
5. 追蹤安裝的文件
如果你想要檢查文件安裝的位置,使用dpkg命令後面跟上checkinstall提供的包名。
$ dpkg -L package_name
/.
/usr
/usr/local
/usr/local/lib
/usr/local/lib/libwx_baseu-3.0.a
/usr/local/lib/libwx_gtk3u_propgrid-3.0.a
/usr/local/lib/libwx_gtk3u_html-3.0.a
/usr/local/lib/libwxscintilla-3.0.a
/usr/local/lib/libwx_gtk3u_ribbon-3.0.a
/usr/local/lib/libwx_gtk3u_stc-3.0.a
/usr/local/lib/libwx_gtk3u_qa-3.0.a
/usr/local/lib/libwx_baseu_net-3.0.a
/usr/local/lib/libwxtiff-3.0.a
6. 編譯示例
編譯wxWidgets完成後就可以馬上編譯示常式序了。在相同的目錄下,一個新的sample目錄已經創建了。
進入它並運行下面的命令
$ compile samples
$ cd samples/
$ make
make命令完成後,進入sample 子目錄,這里就有一個可以馬上運行的Demo程序了。
7. 編譯你的第一個程序
你完成編譯demo程序後,可以寫你自己的程序來編譯了。這個也很簡單。
假設你用的是C++,這樣的話你還可以使用編輯器的高亮特性。比如gedit、kate、kwrite等吵升等。或者用全功能的IDE像Geany、Codelite、Codeblocks等等。
然而你的第一個程序只需要用一個文本編輯器來快速完成。
如下:
#include<wx/wx.h>
classSimple:public wxFrame
{
public:
Simple(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250,150))
{
Centre();
}
};
classMyApp:public wxApp
{
public:
boolOnInit()
{
Simple*simple =newSimple(wxT("Simple"));
simple->Show(true);
returntrue;
}
};
wxIMPLEMENT_APP(MyApp);
現在保存並用下面的命令編譯。中清
# compile
$ g++ basic.cpp `wx-config --cxxflags --libs std`-o program
# run
$ ./program
和非標準的庫一起編譯
面展示的wx-config命令默認只支持標準的庫。如果你使用的是Aui庫,那麼你需要指定額外用到的庫。
$ g++ code.cpp `wx-config --cxxflags --libs std,aui`-o program
5. debian怎麼搭建c語言編譯環境
不需要專門搭建的
系統安裝自帶gcc的。
所以 一般直接用gcc g++編譯就可以了
或者直接寫makefile
6. debian怎麼搭建c語言編譯環境
在linux下面做C的話,編輯器很多,emacs,vim,nano,隨便挑一個文本編輯器和筆記本一樣用就好了,編譯環境的話,你要裝這些,有的包可能你已經有了,命令如下
apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,')
apt-get install build-essential
這兩個命令會把C和C++編譯環境需要的包都裝上的
7. debian內核解壓後怎麼編譯
下載最新的內核源代碼linux-2.6.33.1.tar.bz2,放在/liqiong/Linux內核 目錄下,liqiong是Linux OS的第一個用戶名。
2、進入Linux內核源碼所在的目錄(cd Linux內核),解壓該內核代碼到/usr/src下:
sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src
3、進入Linux內核源碼解壓後的目錄/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)
4、sudo make mrproper 凈化解壓後的源代碼
5、sudo make menuconfig 對內核選項進行配置
在配置過程中會發生如下錯誤:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1
make: *** [menuconfig] 錯誤2
解決辦法:
(1)cd / 進入根目錄後,在終端輸入:sudo apt-get install ncurses
信息:
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關系樹
正在讀取狀態信息... 完成
現在沒有可用的軟體包 ncurses,但是它被其它的軟體包引用了。
這可能意味著這個缺失的軟體包可能已被廢棄,
或者只能在其他發布源中找到
E: 軟體包 ncurses 還沒有可供安裝的候選者
(2)然後接著在終端輸入:sudo apt-get install libncurses*
(3)再cd /usr/src/linux-2.6.33.1進入內核所在目錄,再次輸入sudo make menuconfig就好了!
6、對於配置可選擇General Setup或者選擇其他的自定義選項保存後退出。
7、sudo make dep 建立模塊間的依賴信息
8、sudo make clean 刪除配置時留下的一些不用的文件
(7、8兩步可能對於一些PC沒有作用)
9、sudo make bzImage 編譯內核,內核較小時可以用make zImage
10、sudo make moles 編譯內核模塊
當然,在編譯內核時,可通過make-j<n>來加速內核的編譯,n一般等於CPU數量的兩倍。單核,n=2;雙核,n=4.即執行sudo make -j4就可以編譯了!
11、sudo make moles_install 安裝內核模塊
12、sudo make install 安裝內核
13、cd / 後在終端輸入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic
14、到此為止,構建內核完畢,第十二步把內核映象和System.map拷貝到/boot/下
#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic
#sudo cp System.map /boot/System.map-KERNEL_VERSION
#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
15、
(1)修改grub配置文件
在終端輸入:sudo update-grub2,就會把剛才編譯的內核加入了Grub;(此時就可以重啟了,重啟後在Grub啟動項里多了Ubuntu, Linux 2.6.33.1-generic)
若還需修改(在Ubuntu10.04中沒有採用menu.lst,而是用的grub.cfg(/boot/grub/)),則修改grub.cfg就可以了,
在終端中輸入:sudo gedit /boot/grub/grub.cfg 用root賬戶進入grub.cfg並編輯
(或用sudo chmod +w /boot/grub/grub.cfg改變grub.cfg的許可權後在進行編輯)
如將Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改為menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我們剛才編譯的內核)
(2)修改default變數
在/boot/grub/grub.cfg中,設置set default="【某個數字】"(設置Grub啟動項里的默認啟動項)
在Grub啟動項里,從0數起,我的XP在第10項,所以set default="10",即XP就是默認的啟動項了。
最後重啟即可。
8. debian gcc怎麼改成c++ 11編譯
debian怎麼安裝gcc-c++
一、先安裝gcc3.4.6,為了避免麻煩,或者和原來的gcc4.4造成沖突,請用源代碼安裝方式安裝gcc3.4.6,就是 make make install的方式,而不要用deb包的方式安裝。飢桐
二、一種方法是手動用ln -s創建符號鏈接來管理,但這樣費鍵備時費力,而且容易導致爛亮坦toolchain混亂。
幸好有update-alternatives實用軟體!它可以方便管理好同一軟體的各個不同版本。
1.一般情況下,編譯程序路徑都是使用
/usr/bin/gcc
其實這個/usr/bin/gcc只是個符號鏈接,它指向了/etc /alternatives/gcc,而/etc/alternatives/gcc是指向了/usr/bin/gcc-4.3,可以用ls命令查看
z@GODSON:~$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 21 2009-04-28 13:35 /usr/bin/gcc -> /etc/alternatives/gcc
z@GODSON:~$ ls -l /etc/alternatives/gcc
lrwxrwxrwx 1 root root 16 2009-04-28 13:40 /etc/alternatives/gcc -> /usr/bin/gcc-4.3