我一直在Linux上完成C ++开发,现在我的公司正在转向Windows,所以我不得不重新学习术语和工具。 是否有一个可以缓解过渡的备忘单? 理想情况下,这将是这样的:
Linux Windows nm equivalent windows tool ldd equivalent windows tool -fPIC equivalent Visual C++ flag ...
有这样的事情吗?
编辑 :给我的例子的答案是好的,但我仍然在寻找某种参考,以避免每次我需要使用新的工具时要问:)
╔══════════════════════════════╦══════════════════ ══════════════╦═══════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ════════════╗ ║工具类型║Linux║Windows║ ╠══════════════════════════════╬══════════════════ ══════════════╬═══════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ════════════╣ ║C ++编译器║g ++║cl.exe║ ║Linker║ld║link.exe║ ║环境变量设置║导出║vcvars32.bat║ ║构建工具/系统║使║nmake.exe║ ║图书馆依赖性║ldd║[Dependency Walker](http://www.dependencywalker.com/)║ ║符号来自Binary║nm,readelf,objdump,objconv║dumpbin.exe,[biew](http://sourceforge.net/projects/beye/),[PEBrowse Professional](http://www.smidgeonsoft.com/ pebrowse-pro-file-viewer.html),[objconv](http://www.agner.org/optimize/objconv.zip)║ ║调试器║gdb║Visual Studio中的调试器,或者更多详细信息WinDbg,OllyDbg║ ║IDE║Codeblocks,Eclipse CDT等║Visual Studio║ ║编辑器║vim,emacs等║Visual Studio,Notepad ++等║ ║构建系统║autoconf,cmake等║msbuild,autoconf,cmake等║ ║代码覆盖工具║cxref,cscope║cxref使用MSYS构建,cscope-win32║ ║分解工具║cdecl║[cdecl](http://www.simtel.net/product/view/id/41564)║ ║Demangling工具║c ++ filt║[c ++ filt](http://code.google.com/p/winmercury/source/browse/trunk/gcc/bin/c%2B%2Bfilt.exe?spec= svn93&r = 93)║ ║内存检查║valgrind║[相关的stackoverflow问题](http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows)║ ║反编译器║rec,IDA║rec,IDA║ ║探查器║gprof,callgrind,QuickProf等║QuickProf,[sleepy]或[相关的stackoverflow问题](http://stackoverflow.com/questions/67554/whats - 最好的免费的c-profiler-for-windows-if-there)║ ║单元测试║cppunit,QuickTest║cppunit,QuickTest║ ╚══════════════════════════════╩══════════════════ ══════════════╩═══════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ══════════════════════════════════════════════════ ════════════╝
如前所述,许多Linux实用程序可以使用Cygwin或MSYS或MinGW编译为Windows。
其他宝贵的资源包括以下内容:
建立在命令行上 ,它为devenv(Visual Studio),nmake,vccars32.bat,link,cl和更多
Visual C ++
调试Visual C ++和使用Visual Studio调试器
之后搜索stackoverflow或者Google的Linux工具和windows的名字。
作为一个侧面说明,我使用以下工具来生成上述表格。
毕竟VC并不是那么糟糕。
cl /? link /? /LD == -fPIC ldd like dependency_walker - http://support.microsoft.com/kb/256872
从命令行运行vcvars,然后设置。
大部分的东西都在C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin中
我认为输出很简单,方法类似于gcc;
如果你可以使用像Cygwin或MinGW这样的环境,那么它将大致相同。
否则,如果您使用Visual Studio,则根本不需要命令行工具。
编辑:
对于ldd
你可以使用Dependency walker 。
在Visual Studio中,您通常不需要手动设置标志。 如果你想创建一个DLL,你可以告诉“创建项目向导”你想创建一个DLL项目,它会为你设置正确的标志。
编辑2:
对于nm
,你可以使用dumpbin
,根据这个答案 。