我有一套用C++開發的軟件庫模塊。所以,我使用g ++來編譯我的軟件。調用用g ++編譯的庫的C/C++函數,用gcc編譯的程序
這必須被各種現有的應用程序使用,這些應用程序用C語言編寫並使用gcc編譯。
當其他團隊使用g ++編譯它們的代碼時,由於嚴格的C++類型檢查規則,它們開始出現大量編譯器錯誤。這打破了他們的申請。更糟的是,他們正在使用一些第三方庫代碼,這些代碼不能用g ++編譯。
如果他們使用gcc,那麼存在鏈接器錯誤(未解析的符號)。我的問題是...... 「有沒有辦法讓我的庫代碼與他們的應用程序鏈接,而不必更改各自的編譯器?也就是說,我仍然必須使用g ++,因爲我使用了類/在我的代碼中大量使用對象,他們沒有選擇使用g ++,這會破壞他們的應用程序?「。
謝謝你的幫助。
問候, 拉溫德拉
鏈接預編譯的C++代碼基本上要求您使用相同的精確編譯器。有一些方法可以工作(使用普通的舊數據類型或序列化,並帶有extern「C」類型的唯一接口),但是有很多東西根本無法工作並且會中斷,如果您嘗試使用你的公共接口是。 – 2010-10-22 05:26:04