Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;多平台项目_C++_Visual Studio 2010_Debugging_Embedded_Multiplatform - Fatal编程技术网

C++ c++;多平台项目

C++ c++;多平台项目,c++,visual-studio-2010,debugging,embedded,multiplatform,C++,Visual Studio 2010,Debugging,Embedded,Multiplatform,我使用Visual Studio 2010使用C++多平台项目,在所有平台之间都有共享代码部分,但有一个很大的部分专用于每个,我使用了μIF DEF来分离它们,但是代码维护变得非常复杂,代码也杂乱无章,此外,还有一些问题,比如代码在某些定义打开或关闭时无法编译 是否有visual studio的插件或工具可以帮助开发多平台项目,例如隐藏与平台相关的代码,或使用不同的#打开/关闭定义、检查数据类型等进行编译。。ect 如果有人提出建议,我将不胜感激除了visual studio本身之外,没有其他“

我使用Visual Studio 2010使用C++多平台项目,在所有平台之间都有共享代码部分,但有一个很大的部分专用于每个,我使用了μIF DEF来分离它们,但是代码维护变得非常复杂,代码也杂乱无章,此外,还有一些问题,比如代码在某些定义打开或关闭时无法编译

是否有visual studio的插件或工具可以帮助开发多平台项目,例如隐藏与平台相关的代码,或使用不同的#打开/关闭定义、检查数据类型等进行编译。。ect

如果有人提出建议,我将不胜感激

除了visual studio本身之外,没有其他“工具”。将代码分为不同的项目;通用代码的项目和每个平台的项目

别忘了:

 1. Add reference to common project in all platform-dependent projects (so common project is compiled before platform project). 
 2. Add common project base to the common include directories of each target project.
没有什么“工具”比VisualStudio本身更重要了。将代码分为不同的项目;通用代码的项目和每个平台的项目

别忘了:

 1. Add reference to common project in all platform-dependent projects (so common project is compiled before platform project). 
 2. Add common project base to the common include directories of each target project.

我不知道有这样一个VS插件,但由于它基本上是一个仅限Windows的IDE,我怀疑是否有。(但我当然可能错了)

如果您正在寻找一个好的跨平台构建系统,我会考虑。它功能强大,易于获取,可以为几乎任何流行的IDE/工具链(VisualStudio解决方案、Eclipse项目、MinGW Makefiles、GNU Makefiles等)生成构建文件


它使大型项目的跨平台开发变得轻而易举

我不知道有这样一个VS插件,但由于它基本上是一个仅限Windows的IDE,我怀疑是否有。(但我当然可能错了)

如果您正在寻找一个好的跨平台构建系统,我会考虑。它功能强大,易于获取,可以为几乎任何流行的IDE/工具链(VisualStudio解决方案、Eclipse项目、MinGW Makefiles、GNU Makefiles等)生成构建文件


它使大型项目的跨平台开发变得轻而易举

如果切换到Qt框架,可能会消除大部分依赖于平台的代码。您可以继续将VS与Qt附加组件一起使用,并且通过使用Qt的平台抽象,您可以针对具有(几乎)相同代码库的许多不同平台。您可以获得无与伦比的平台支持和可移植性:

  • 窗户
  • Linux(Qt是KDE和Ubuntu未来版本的本机)
  • 马科斯
  • BB10(Qt也是BB10固有的)
  • 嵌入式Linux
  • 安卓(下个月上市)
  • iOS(下个月也一样)
  • 乔拉
  • 提赞

在我看来,API也更好——不那么难看和笨拙,更加一致。此外,QML(JSON样式标记用于从C++组件使用JS进行粘贴代码和值绑定),可以显著提高您的生产率(最多10倍而不夸张)。Qt工具链支持不同的工具包(库版本编译器和平台的组合)和多平台交叉编译。

如果切换到Qt框架,您可能会消除大部分依赖于平台的代码。您可以继续将VS与Qt附加组件一起使用,并且通过使用Qt的平台抽象,您可以针对具有(几乎)相同代码库的许多不同平台。您可以获得无与伦比的平台支持和可移植性:

  • 窗户
  • Linux(Qt是KDE和Ubuntu未来版本的本机)
  • 马科斯
  • BB10(Qt也是BB10固有的)
  • 嵌入式Linux
  • 安卓(下个月上市)
  • iOS(下个月也一样)
  • 乔拉
  • 提赞

在我看来,API也更好——不那么难看和笨拙,更加一致。此外,QML(JSON样式标记用于从C++组件使用JS进行粘贴代码和值绑定),可以显著提高您的生产率(最多10倍而不夸张)。Qt工具链支持不同的工具包(库版本编译器和平台的组合)和多平台交叉编译。

好吧,我支持cMake,但这不是一件轻而易举的事;-)我想这更像是一个稳定的逆风,但在我看来,这比持续的手动跨平台开发风暴要好我也强烈推荐CMake。它适用于多种平台、多种操作系统和多种编译器。我在64位windows上的多个版本的Visual Studio中使用它,但是我也在linux上构建了我的应用程序,对CMake配置文件几乎没有更改。是的,CMake确实有能力管理定义。我想在CMake之上添加jenkins或hudson作为构建的CI服务器。然后,开发人员可以在他们选择的IDE中工作,只需向服务器提交可跨构建的内容。(好吧,它强制执行干净的代码,因为MSVC允许一些讨厌的不一致代码,而GCC崩溃并对构建破坏者在构建服务器上施加惩罚;-)好吧,我对cMake投了赞成票,但这不是轻而易举的事;-)我想这更像是一个稳定的逆风,但在我看来,这比持续的手动跨平台开发风暴要好我也强烈推荐CMake。它适用于多种平台、多种操作系统和多种编译器。我在64位windows上的多个版本的Visual Studio中使用它,但是我也在linux上构建了我的应用程序,对CMake配置文件几乎没有更改。是的,CMake确实有能力管理定义。我想在CMake之上添加jenkins或hudson作为构建的CI服务器。然后,开发人员可以在他们选择的IDE中工作,只需向服务器提交可跨构建的内容。(而且它强制执行干净的代码,因为MSVC允许一些令人讨厌的不一致代码,而GCC崩溃并对构建破坏者在buildserver中施加惩罚;-))使用
if(kFeatureFoo)
而不是
#if kFeatureFoo
通常有帮助:这意味着