C++ 编写C++;Visual studio中Linux平台的代码

C++ 编写C++;Visual studio中Linux平台的代码,c++,visual-studio,C++,Visual Studio,我正在用VS编写代码,稍后应该移植到Linux。我发现有时候,我可能会使用一些只在Windows上可用而在Linux上不可用的函数或代码 有什么方法可以让我的VisualStudio向我报告这些不可移植的代码吗 我更喜欢在开发过程中使用VS,然后使用代码库并在Linux中编译。您可以将MinGW视为参考编译器,只是为了检查您编写的代码是否可移植 您还可以在项目属性的编译器选项设置中禁用MSVC编译器扩展(或设置/Za标志)。这很可能至少会使停止编译 坦白地说,我不认为简单地不使用不可移植的东西有

我正在用VS编写代码,稍后应该移植到Linux。我发现有时候,我可能会使用一些只在Windows上可用而在Linux上不可用的函数或代码

有什么方法可以让我的VisualStudio向我报告这些不可移植的代码吗


我更喜欢在开发过程中使用VS,然后使用代码库并在Linux中编译。

您可以将MinGW视为参考编译器,只是为了检查您编写的代码是否可移植

您还可以在项目属性的编译器选项设置中禁用MSVC编译器扩展(或设置
/Za
标志)。这很可能至少会使
停止编译


坦白地说,我不认为简单地不使用不可移植的东西有什么问题。坚持使用标准库和您知道是可移植的库,这样您就可以使用了。(诚然,语法扩展更容易意外使用,但它们的用法通常也很难用正确的方式放回去)。

您可以设置一个使用例如或类似内容的配置,使用GNU编译器,并将其设置为在Linux环境中构建。@JoachimPileborg谢谢。这是一个解决方案,但我喜欢以本机方式使用MSVC,但MSVC只是阻止我编译特定于windows的代码。禁用仅限windows的编译器扩展,不使用任何windows库,您应该或多或少都可以。这意味着您不应该包括windows.h,例如,为您的GUI使用第三方库(如QT)。此外,您可以将cmake与VS结合使用,并且只需很少或不做任何更改即可在linux系统上编译同一个项目。棘手的一点当然是Boost,它将很乐意使用Windows特定的代码,并且仍然在linux上编译(因为它也有linux特定的代码)。设置linux CI服务器,以便您可以关注构建。这样,当你做了一些只在MSVC或g中有效的事情时,你就会知道了++