经过一段时间主要是.net开发,我需要以跨平台的方式在C ++中工作。
我不想放弃visual studio,所以我的希望是可以使用visual studio和windows target作为testbuild,然后每隔一段时间通过vmtesting一下linux或者mac上的代码。
有没有人有如何最好地设置这个经验?
我特别好奇你如何确保项目文件等与* nix平台上可能需要的make文件保持同步。
首先,选择一个非托管的C ++项目(避免.net的东西)。
之后,调高警戒级别( /W3
应该这样做),并且非常小心你做什么/写什么。 恕我直言,海湾合作委员会是更好地保持与标准( -Wall -Wextra -pedantic -std=c++11
)直,但你指定MSVC。
正如Noah所说,你需要一个本身就是跨平台的构建系统,就像CMake一样(还有别的,请不要忘记)。
请记住使用平台/架构/编译器独立的类型,比如std::size_t
, std::(u)intptr_t
等等,而不是简单的int
, long
, unsigned
:这些都是灾难的秘诀,而且Windows API也会引发这些许多。
看到这里 ,但只有/特别是点1,2,5和8(和9,但推广到svn,git,mercurial)。
我特别好奇你如何确保项目文件等与* nix平台上可能需要的make文件保持同步。
由于MS决定取消对VS的makefile支持,你不这样做。 你用别的东西可以生成VS项目文件,并确保你保持正确的设置。 像CMake的东西。
(3年后…)
如果你有NON-EXPRESS ,因此允许使用插件,那么WinGDB和VisualGDB就可以帮助你。
Duckduckgo也告诉我关于这个过时的问题 – 但现在可能还有更多,因为他们应该更容易使用新的基于xml的项目格式。
这是6年前的一个古老的问题,但是我只想指出,微软现在有官方工具可以在Visual Studio中使用linux c ++:
https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/
另外,Windows 10现在可以在 Windows 内部运行Linux,因此对于那些仍然有兴趣在Visual Studio中使用C ++ for Linux进行开发的人来说,它应该会让您的生活变得更轻松。