2009-09-29 63 views
3

我想在Mac上構建libdecodeqr。我的C++建築和連接歷史都在窗戶上,所以這是一個令人興奮的發現之旅。未定義的符號_main當試圖構建共享庫時g ++/mac

我終於到了想要創建鏈接庫的地步。我運行的命令是:

g++ -shared -o libdecodeqr.so.0.9.3 bitstream.o codedata.o container.o ecidecoder.o formatinfo.o galois.o imagereader.o libdecodeqr.o -L/opt/local/lib -arch i386 -lcxcore -lcv 

結果是:

Undefined symbols: 
    "_main", referenced from: 
     start in crt1.10.5.o 

我的印象是一個創建使用-shared標誌庫意味着我不應該需要一個主要功能。源代碼中肯定沒有一個。

只是踢我添加int main(){返回0;}到其中一個cpp文件並重建。整個事情編譯和鏈接,但是當我試圖使用輸出作爲庫時,我得到錯誤告訴我,我不能鏈接到一個主要的可執行文件。我猜想這是有道理的。

有什麼我需要傳遞給g ++來告訴它建立一個庫嗎?

回答

7

-shared在OSX上不受支持。使用-dynamiclib-bundle(取決於您要創建哪種類型的共享庫)。

+0

完美,謝謝。 – 2009-09-29 20:10:05

相關問題