簡體   English   中英

如何確定在Mac OS Lion上為目標文件/模塊編譯的目標文件(例如“ x86_64-apple-darwin11.0”)?

[英]How can I figure out what “target” an object file/module is compiled for on Mac OS Lion (e.g. “x86_64-apple-darwin11.0”)?

我正在嘗試為OS X Lion編譯一些代碼,並且在鏈接目標文件和庫時遇到問題。 我收到此錯誤:

警告:鏈接具有不同目標三元組的兩個模塊:'x86_64-apple-darwin11.0'和'x86_64-apple-darwin10'

是否可以運行命令行工具/命令以查看目標文件或庫的目標是什么? 然后,我可以返回並調試編譯過程,以確保每個人都針對同一構建。

謝謝! -唐

對於llvm位碼模塊,可以使用llvm-dis對其進行反匯編,然后查看其中的模塊:

[yendi:~] echristo% llvm-dis foo.bc -o - | grep "target triple"
target triple = "x86_64-apple-macosx10.7.0"

尚不完整的信息,但是通常要獲得使用“文件”的體系結構:

對於單個.o文件:

[yendi:~] echristo% file foo.o
foo.o: Mach-O 64-bit object x86_64

或使用-O4創建位碼文件:

[yendi:~] echristo% /Volumes/Data/builds/build-llvm/Debug+Asserts/bin/clang++ foo.cc -c -emit-llvm -o foo.bc -O4
[yendi:~] echristo% file foo.bc
foo.bc: LLVM bit-code object x86_64

這不會讓您獲得完整的三元組,但會為您提供文件信息。

我的猜測是您周圍有一些舊的目標文件,或者在某些文件上傳遞-mmacosx-version-min = 10.6而不在其他文件上傳遞。

暫無
暫無

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

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