2013-05-31 47 views
0

我已經生成了一個C++共享庫,並將它與從PHP調用的C++控制檯應用程序集成。我在我的Windows操作系統上嘗試了這一點,它的功能非常完美。現在我必須將其轉移到一個Linux網絡服務器。我知道我必須在Linux中再次編譯C++控制檯應用程序才能運行它,並且可能也會生成C++共享庫。我是linux操作系統新手,如何在linux服務器上編譯C++控制檯應用程序,如同我們在Visual Studio中那樣,從C++共享庫中生成所有附加庫,包含文件和頭文件?任何有關此鏈接將不勝感激。由於共享庫來自matlab,因此我應該在編譯C++控制檯應用程序的同時分配matlab包含文件和庫。在Linux中編譯C++控制檯應用程序

+1

你可以畫一個你有什麼文件的圖表 - 或者顯示一個makefile或其他東西嗎?我絕對相信這個問題是可以回答的,但是沒有進一步的細節,它就會是諸如「use -I表示包含目錄」之類的東西,這可能不是你所需要的。 –

+0

關於matlab的東西,請注意,Windows DLL無法在Linux上使用,您必須使用.a(靜態庫)或.so(動態庫),它們在Linux中扮演的角色不是.lib和.dll。 –

回答

1

我想你必須得到你的matlab庫的Linux port,這可能涉及到安裝matlab並在Linux上工作(以及一些測試&調試)。

當你的LIB準備就緒,端口控制檯應用程序還(調試等全部。),打開一個終端,然後: -

gcc -Wall console_app.c /path/to/your/libFromMatlab.a -o console_app 

如果您的控制檯應用程序的源代碼分成多個文件,你可能要考慮使用IDE如code::blocks或使用makefile來簡化您的工作。

將你的「libFromMatlab.so」(注意.so和上面的.a)位置添加到庫路徑(或將其複製到別人所在的位置),然後確保你的console_app具有可執行標誌設置。

注意:在沒有交叉編譯的情況下,在目標平臺之外的任何平臺上開發,都等同於玩俄羅斯輪盤賭......只有更少的致命性。

----- 編輯 ------
我也碰到this article,認爲第4節可能有一些價值的。