2013-10-17 49 views
0

我很抱歉,如果這看起來像一個愚蠢的問題,但我想我更習慣與Makefiles或配置腳本隨附的軟件包。如何在Linux上構建貓鼬網絡服務器?

我從site下載了Mongoose源碼tar文件,並解開它。

然後我試着用 gcc -g -c mongoose.c -o main.o -lpthread -ldl編譯一個可執行文件。 但是,試圖執行後,我得到錯誤-bash: ./main.o: cannot execute binary file

當我看着mongoose.c源,我沒有找到一個主要功能。

我在哪裏可以獲得主要功能,以便Linux貓鼬網絡服務器可以編譯爲與Windows mongoose.exe一樣工作?

回答

3

Mongoose確實附帶了一個Makefile,並且將作爲一個獨立的命令行程序進行編譯。包括Lua和SQLite。

編譯最新版本的最簡單方法是cd到「build」目錄並運行make unix。我不確定下載頁面上的存檔版本,但中繼線一直非常穩定。

我剛剛從github早些時候簽出了一份乾淨的Mongoose副本,並且沒有任何問題,所以我可以確認這是有效的(假設您有任何其他依賴項設置正確,當然)。

+1

Mongoose不再具有./build目錄,開發人員也沒什麼幫助,可能是因爲Mongoose現在部分是商業產品。 – Gulbahar

+1

@Gulbahar你可能已經知道這一點,但[Civetweb] fork(https://github.com/bel2125/civetweb)fork保留了MIT許可證,正在積極開發,並且有詳細的[build instructions](https:// github。 COM/bel2125/civetweb /斑點/主/文檔/ Building.md)。 –

1

這是因爲貓鼬不應該被單獨使用,而是將其「嵌入」到您的程序中。您需要創建一個從mongoose.c調用正確功能的程序。

此外,GCC的-c標誌告訴它創建一個目標文件,它需要鏈接來創建一個可執行文件。所以你試圖執行一個不可執行的文件。

+1

爲什麼Windows版本的貓鼬會使用獨立程序,而* nix版本不會? 我期望* nix版本包含一個獨立的版本。 – merlin2011

+1

@ merlin2011源代碼歸檔沒有主要功能,因此它不能與提供的windows可執行文件(其中包含很多其他內容,如SSL,lua等 - 它們都不是核心貓鼬源代碼的一部分)中使用的完全相同。唯一能夠回答你的問題的是他們的windows包的開發者/維護者,請問他們是否願意 - 儘管如果你是第一個想要這個功能的人,我不會感到驚訝,但它絕對不是貓鼬意圖的用例。 – keltar