2013-05-10 105 views
4

我們已經開始鏈接我們的應用程序-libmysqlcppconn-static對於MySQL的支持。gcc -funit一次導致編譯失敗

當我們編譯進行調試時,一切正常,但是當我們使用gcc -O2編譯發佈時,我們會收到錯誤。

我們已經追查到有問題的編譯器選項是-funit-at-a-time。 我們拿到的形式五月錯誤:

libmysqlcppconn-static.a(mysql_connection.cpp.o):在功能 sql::mysql::MySQL_Savepoint::getSavepointId()': mysql_connection.cpp:(.text+0x8d): undefined reference to 的std ::分配器::分配器()」 mysql_connection.cpp :(文+ 0x133):未定義的引用 '的std ::分配器::〜分配器()」

我們都是圍繞這個工作現在包括-fno-unit-at-a-time。任何深入瞭解我們如何能夠糾正這種將不勝感激

+0

你的gcc版本是什麼? – devnull 2013-05-10 15:36:13

+0

在我們的舊gcc版本3.4.6服務器和我們的新版gcc版本4.4.7服務器 – PhilC 2013-05-10 18:15:47

+0

上都會發生這種情況,需要進一步檢查,-fno-unit-at-a-a-a-work在3.4.6編譯器上工作,但沒有影響在4.4.7上。與該編譯器鏈接時,我們仍然會收到錯誤。 – PhilC 2013-05-13 12:08:26

回答

0

這可能是因爲您正在使用使用gcc來編譯代碼..嘗試使用G ++編譯的文件 使用以下命令 GCC -lstdC++ file.cpp否則可以試試