是否有可能在沒有lib的情況下編譯C++? 因爲當我試圖編譯我的程序與Mingw和cygwin的.exe文件後,我無法運行它,它說,有一個缺少的庫。對於cygwin,它是「cygwin1.dll」。是否可以在沒有lib的情況下編譯C++?
1
A
回答
4
用Cygwin構建的二進制文件始終依賴於cygwin1.dll
。 Hovewer,如果你想避免這種情況,請使用鏈接器選項-mno-cygwin
。通過這種方式,您可以確保不需要依賴於您需要隨應用程序一起提供的cygwin運行時庫。
MinGW也有一些本地依賴項。特別是,libgcc_s_dw2-1.dll
(取決於工具鏈中使用的退繞類型)和mingwm10.dll
。要擺脫它們,請使用鏈接器的-static-libgcc
和-mthreads
選項。請注意,C++異常取決於此選項。
不過小記。你的問題 - 「有沒有可能編譯C++沒有lib?」是不正確的,因爲有總是對libs的一些依賴(除非你正在爲沒有OS的準系統硬件構建二進制文件),例如Windows的user32.dll。當然,Cygwin和MinGW都不適合這一點。
2
它不只是一個圖書館;這是您運行使用Cygwin編譯的應用程序所需的運行時。
如果你真的使用MinGW,那麼你可以完全避免Cygwin與-mno-cygwin
,但即使那樣你將需要MinGW運行時,可能還需要C++標準庫。但是,這些通常可以鏈接到靜態,以便您不需要運送任何依賴關係。
2
一般答案 - no。 C++代碼通常需要運行時支持,以啓用RTTI和異常處理等功能。 因此無論如何,您必須動態或靜態地將可執行文件與libstdC++鏈接起來。
相關問題
- 1. 編譯器可以在沒有擴展的情況下編譯代碼嗎?
- 2. 如何在C#中編寫一個lib,lib可以在沒有任何調用的情況下運行?
- 3. 是否可以在沒有appstore的情況下安裝IOS APP?
- 4. 是否可以在沒有X-server的情況下運行JavaFx?
- 5. Android:是否可以在沒有SurfaceView的情況下創建SurfaceTexture?
- 6. 是否可以在沒有IIS的情況下使用Silverlight RiaServices?
- 7. 是否可以在沒有Karma的情況下測試Angular?
- 8. 是否可以在沒有梨的情況下安裝PHPUnit?
- 9. 是否可以在沒有Weblogic Server的情況下運行OSB?
- 10. 是否可以在沒有log4j的情況下使用perf4j?
- 11. 是否可以在沒有Expressj的情況下使用Passport.js?
- 12. 是否可以在沒有QtConcurrent的情況下使用QFuture?
- 13. 是否可以在沒有RTP/SAVP的情況下使用SIPML5
- 14. 是否可以在沒有MFC的情況下使用CListCtrl
- 15. 是否可以在沒有jQuery的情況下使用Materializecss?
- 16. 是否可以在沒有累加器的情況下寫入?
- 17. 是否可以在沒有FOSUserBundle的情況下使用FOSCommentBundle?
- 18. 是否可以在沒有GMS的情況下使用Google API?
- 19. 是否可以在沒有VT-x的情況下使用Boot2Docker?
- 20. 是否可以在沒有GATT的情況下實施Proximity Profile?
- 21. 是否可以在沒有cookie的情況下設置nginx?
- 22. 是否可以在沒有RPC的情況下使用Apache Thrift?
- 23. 是否可以在沒有stdlibs的情況下寫入控制檯? c/C++
- 24. 在沒有gnustep的情況下編譯目標c程序
- 25. 如何在沒有visual studio的情況下編譯C文件
- 26. 是否可以在沒有edititemtemplate的情況下編輯GridView單元格?
- 27. 是否可以在沒有SDK的情況下編寫Android應用程序?
- 28. 是否有任何理由在沒有優化的情況下進行編譯?
- 29. 是否可以在不重新編譯的情況下更改exe的圖標?
- 30. 我可以在沒有編譯器的情況下將.c文件編譯爲.exe文件嗎?
試試'-mno-cygwin'。 –
重複http://stackoverflow.com/questions/338406/cygwin1-dll-not-found-when-running-a-program-written-in-c-how-can-i-make-windo – Griwes
@Griwes:幾乎不。那個人想找圖書館;這個人不想使用它(但不能)。 –