我正在用C++編寫一個小應用程序,我對此有一些疑問。我基本上是一個Java開發人員,現在正在轉向C++。如何在Linux中使用C++編寫庫
如果我使用像升壓一些圖書館,捲曲等我可以使它無需安裝客戶端機器上運行(我的意思是這樣,包括在Java項目中的所有庫jar文件)
我已經在linux中安裝了一些庫或軟件。之後,如果我輸入終端,它會對軟件進行排序。例如,PHP,安裝它後,你可以從終端使用PHP。這個怎麼用?我可以使用我的簡單C++項目來做到這一點嗎?
我正在用C++編寫一個小應用程序,我對此有一些疑問。我基本上是一個Java開發人員,現在正在轉向C++。如何在Linux中使用C++編寫庫
如果我使用像升壓一些圖書館,捲曲等我可以使它無需安裝客戶端機器上運行(我的意思是這樣,包括在Java項目中的所有庫jar文件)
我已經在linux中安裝了一些庫或軟件。之後,如果我輸入終端,它會對軟件進行排序。例如,PHP,安裝它後,你可以從終端使用PHP。這個怎麼用?我可以使用我的簡單C++項目來做到這一點嗎?
是的。您使用一個名爲的進程,它將所有庫鏈接成一個大的可執行文件,並將其鏈接到。在./configure
腳本(來自autotools)中,您使用--enable-static
標誌。在構建程序時,使用-static
標誌。靜態庫是後綴爲.a
的庫;共享庫使用.so
,有時使用版本號後綴)。
PHP不是一個庫,它是一種語言(即可執行文件),它提供了自己的命令行界面。您的C++可執行文件可以類似工作,您只需從cin
(在<iostream>
中)獲取輸入並將結果寫入cout
,並使用cerr
獲取錯誤消息。
你的標題問題,「如何使在C++庫在Linux」(而不是使用庫):您可以使用ar
程序來幾個.o
文件鏈接到一個單一的.a
庫文件。您也可以使用ranlib
來清理.a
文件。請閱讀man
頁面以瞭解這些命令的用法。
對於問題1,您希望將程序編譯爲靜態可執行文件。 (只需將-static
傳給g ++)。它會使程序大得多,因爲它需要包含通常保存爲庫的東西的副本。
對於問題2我很確定你的意思是在PATH
中有一個程序。鍵入echo $PATH
以查看當前計算機上的路徑。如果您將程序安裝在其中一個目錄中,它將從任何地方運行。 (最有可能的是/usr/local/bin/
)
1)對你的Q1的回答是靜態鏈接庫的編譯。例如用gcc編譯器:
#gcc的-static myfile.c文件-o MYFILE
2)答案給你Q2被追加到$ PATH環境變量的可執行文件的絕對路徑。例如,在Bash shell中:
#出口PATH = $ {PATH}:/ home/user中/ pathofexecutable
上述設置只爲你做終端是暫時的。爲了讓你的機器上的所有終端都可以使用,可以將上面的導出命令添加到/home/user /。bashrc文件。