Click here to Skip to main content
15,891,184 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Is there any tool to find a software compiler in windows?
Posted
Comments
CHill60 28-Jul-13 17:09pm    
Do you actually mean is there a way to determine which language an executable was written in? For example for the 'C' language there are many compilers available, but the underlying code is (generally) the same. See also this link http://stackoverflow.com/questions/11233346/identifying-compiler-version-from-windows-executable[^]
or google with this text "determine which compiler was used from executable"
[no name] 28-Jul-13 17:09pm    
That would greatly depend on what on earth you are talking about.
Sergey Alexandrovich Kryukov 28-Jul-13 19:59pm    
Please see my answer where I explain that the question does not makes sense. Please pay attention: this question reveal that you have a big misconception of the process of software build and use. If you don't really understand it, why would you need to know the compiler?
—SA

1 solution

In general case, this is impossible in principle. Some compilers really leave a "signature" in the generated file, but this is not required, so you cannot know what compiler was used.

By the way, usually a native executable file is created by using a compiler to generate object files, and they are put together, with appropriate address translation and resolution of the calls, by another program called linker. There are many different variants of these procedures with different steps, depending on technology. But the point is: the executable file might be created not by one compiler, but by two or more different compilers, and then a linker or a similar tool. This way, not only you cannot find out a compiler, but the question itself does not make sense, as an executable file does not have to be created using just one compiler.

—SA
 
Share this answer
 
v2
Comments
pasztorpisti 28-Jul-13 20:06pm    
+5. reminds me of a case where we had an old static lib we couldn't recompile so our final program was dependent on 2 different versions of the VC++ runtime lib. Finally we put the lib into its own dll and we linked the exe statically so the result was dependent only on the old crt dlls. In practice however the crt code is a very good signature and almost every compiler has at least a minimal crt lib (maybe only asm compilers don't have it). A good tool I used long ago was PEiD, it was able to detect compilers, exe cryptors/compressors,... Another good example is the IDA Pro disassembler, it automatically finds the crt lib of different compilers and sets the signature of these functions that would be a very boring manual work.
Sergey Alexandrovich Kryukov 28-Jul-13 20:23pm    
Thank you. I would say, the CRT is mostly related to C/C++, not other language...
—SA
pasztorpisti 29-Jul-13 4:39am    
You are right, I should have said just runtime lib. :-)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900