簡體   English   中英

如何找出二進制文件中使用的c ++標准?

[英]How to find out which c++ standard used in a binary file?

例如,我有一個名為“ helloworld”的cpp文件,名為main.cpp。
如果我使用標志-std = c ++ 11進行編譯。 然后用-std = c ++ 03標志再次編譯它。
如何在兩者之間指定使用c ++ 11標志編譯的文件?
另外:我的特定問題是我有一個第三方lib文件,我在代碼中使用了它,但是我不知道應該使用哪個“ -std”標志。

  1. 如果它是第三方庫,那么必須有一些文檔說明要從源代碼構建的編譯步驟。 請參考。
  2. 如果沒有可用的東西,我假設您至少可以訪問源代碼,請查看實現(頭文件或源文件),您可能會獲得足夠多的信息來確定它是否可用使用符合C ++ 11標准的代碼。

@πάνταῥεῖ,我的意思是說,用不同的c ++標准進行編譯不會在二進制文件中留下任何東西嗎? Riopho

如果您想從二進制文件中找出問題,那么我可能會使用objdump並在打開分拆功能的情況下反匯編二進制文件-objdump objdump -dC <binary_name> -(假設您使用的是Linux,盡管窗口不多)。 您應該能夠從中得到一些提示。

我不確定編譯器是否在二進制文件中留下任何痕跡。

暫無
暫無

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

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