2013-03-15 49 views
0

在C++中,當將對象文件存檔到.a文件中時,它與平臺有關嗎?存檔文件x32或x64?

例如我在x64平臺上用x64編譯器編譯,我將一堆CPP文件編譯成.o文件。使用AR.exe,我將它們歸檔到.a文件並分發。

.a文件是x32,x64還是可以互換的?或者是否依賴於使用.a文件的程序?

+0

.a文件只包含裏面的對象,所以它將成爲編譯源代碼的平臺。使用像lipo這樣的工具,你可以分發跨平臺的.a文件。 – 2013-03-15 22:10:04

+1

.o文件已經像平臺一樣依賴於它,'ar'不會奇蹟般地解決這個問題。 – delnan 2013-03-15 22:12:49

回答

3

假設「使用x64編譯器編譯」意味着它生成64位代碼,無論它本身是否是64位可執行文件,那麼您的.a文件將是64位代碼。它們是從您的.o文件生成的,這些文件是編譯器生成的64位二進制文​​件。 .a不能比構成它的.o文件更多或不同。

+0

Ooohhh我明白了。我在想,.a文件將是一些方式和任何程序鏈接,以決定它是否是x32或x64 ..感謝您清除它。 – Brandon 2013-03-15 22:14:13

相關問題