在C++中,當將對象文件存檔到.a文件中時,它與平臺有關嗎?存檔文件x32或x64?
例如我在x64平臺上用x64編譯器編譯,我將一堆CPP文件編譯成.o文件。使用AR.exe,我將它們歸檔到.a文件並分發。
.a文件是x32,x64還是可以互換的?或者是否依賴於使用.a文件的程序?
在C++中,當將對象文件存檔到.a文件中時,它與平臺有關嗎?存檔文件x32或x64?
例如我在x64平臺上用x64編譯器編譯,我將一堆CPP文件編譯成.o文件。使用AR.exe,我將它們歸檔到.a文件並分發。
.a文件是x32,x64還是可以互換的?或者是否依賴於使用.a文件的程序?
假設「使用x64編譯器編譯」意味着它生成64位代碼,無論它本身是否是64位可執行文件,那麼您的.a文件將是64位代碼。它們是從您的.o文件生成的,這些文件是編譯器生成的64位二進制文件。 .a不能比構成它的.o文件更多或不同。
Ooohhh我明白了。我在想,.a文件將是一些方式和任何程序鏈接,以決定它是否是x32或x64 ..感謝您清除它。 – Brandon 2013-03-15 22:14:13
.a文件只包含裏面的對象,所以它將成爲編譯源代碼的平臺。使用像lipo這樣的工具,你可以分發跨平臺的.a文件。 – 2013-03-15 22:10:04
.o文件已經像平臺一樣依賴於它,'ar'不會奇蹟般地解決這個問題。 – delnan 2013-03-15 22:12:49