用于C ++开发的Windows / Linux版本?

我一直在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 ,根据这个答案 。