[英]Undefined symbol _main when trying to build shared library g++ / mac
我想在mac上構建libdecodeqr。 我的c ++構建和鏈接歷史都在windows上,所以這是一個令人興奮的發現之旅。
我終於到了想要創建鏈接庫的地步。 我正在運行的命令是:
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(){return 0;}添加到其中一個cpp文件並重建。 整個事情編譯和鏈接,但當我嘗試將輸出用作庫時,我得到錯誤告訴我,我無法鏈接到主可執行文件。 我覺得這很有道理。
還有什么我需要傳遞給g ++來告訴它構建一個庫嗎?
-shared
不支持OSX。 使用-dynamiclib
或-bundle
(取決於您要創建的共享庫類型)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.