簡體   English   中英

如何構建獨立於編譯器的C ++庫(用於Solaris Studio和gcc)?

[英]How to build a compiler-independent C++ library (for Solaris Studio and gcc)?

我想擴展我的庫(該庫當前僅使用gcc進行編譯)也可以由Solaris Studio使用。

我的想法是執行以下操作:

  1. 用C編寫包裝函數,使用外部C鏈接公開接口的相關部分。
  2. 然后使用gcc構建該庫。 生成的c頭文件和二進制文件與編譯器無關,因為不再存在名稱混亂的問題。
  3. 包括c頭並鏈接到使用Solaris Studio編譯的項目。

問題:這是可行的方法還是對此問題有更好的解決方案?


注意:除了名稱修飾外,還請注意與異常處理有關問題

您的計划是正確的。

只要您的庫公開與平台ABI兼容的C API(C類型的大小和對齊方式,調用約定)並且不引發C ++異常,您就不會遇到使用其他編譯器或語言鏈接庫的麻煩。

您還可以為您的C API添加僅C ++標頭包裝器,以使其可以輕松地從C ++重用並保證異常安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM