Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
如何构建visualc++;Linux项目? 什么是最好的和最简单的方法(为Linux)构建一个在Visual Studio中编写的C++应用程序?代码本身已经准备好了——我只使用了跨平台libs_C++_Visual Studio_Linux_Visual C++ - Fatal编程技术网

如何构建visualc++;Linux项目? 什么是最好的和最简单的方法(为Linux)构建一个在Visual Studio中编写的C++应用程序?代码本身已经准备好了——我只使用了跨平台libs

如何构建visualc++;Linux项目? 什么是最好的和最简单的方法(为Linux)构建一个在Visual Studio中编写的C++应用程序?代码本身已经准备好了——我只使用了跨平台libs,c++,visual-studio,linux,visual-c++,C++,Visual Studio,Linux,Visual C++,是否可以在Visual Studio中的Windows下准备所有内容,然后在Linux下使用CLI工具进行构建?有任何文件描述这一点吗 编辑:更多信息: 使用的库:stl、wxwidgets、boost、asio、cryptlib 很少有Linux专有技术 编辑#2:我选择了以下解决方案:使用kdevelop创建新项目并在那里编译所有内容 什么是用VisualStudio为Linux构建C++应用程序的最好和最简单的方法?代码本身已经准备好了——我只使用了跨平台libs 检查是否有不属于标

是否可以在Visual Studio中的Windows下准备所有内容,然后在Linux下使用CLI工具进行构建?有任何文件描述这一点吗

编辑:更多信息:

  • 使用的库:stl、wxwidgets、boost、asio、cryptlib

  • 很少有Linux专有技术

编辑#2:我选择了以下解决方案:使用kdevelop创建新项目并在那里编译所有内容

什么是用VisualStudio为Linux构建C++应用程序的最好和最简单的方法?代码本身已经准备好了——我只使用了跨平台libs

  • 检查是否有不属于标准C的内容++
  • 冲洗并重复
  • 创建makefile或KDevelop项目

我们在Linux项目中使用CMake。CMake可以生成KDevelop和visualstudio项目文件,因此您只需创建CMake文件作为平台特定IDE文件的源文件。KDevelop生成器很好,因此您可以在KDevelop中编辑和编译(这将调用Make)


另一方面,如果您没有什么想法,您可以使用CMake或Make在Linux上构建这个东西,如果您想继续使用您的解决方案文件(这是我目前为一个带有测试应用程序的库所做的)。当您的构建过程不仅仅是“将这些文件扔给编译器,让我们看看它能做什么”时,这种方法会变得复杂,因此我认为CMake解决方案是跨平台开发的一件好事。

下面介绍如何在Linux下手动编译C代码,而无需额外的构建工具。

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2
但是,如果您的项目比几个文件大,您可能希望使用构建工具来代替(例如CMake,请参阅OregonGhost的答案),以自动编译许多文件并使其增量。如果您使用构建工具,它将在后台运行gcc,并使用上面类似的参数。理解上面的参数很有用,这样在自动构建失败时可以进行故障排除

这将把code1.c和code2.c编译成可执行的二进制程序,从.includedir1和includedir2加载.h文件,使用库use1(对应于文件名libuse1.so*)和use2从目录libdir1和libdir2加载库(例如libuse1.so*和libuse2.so*)

如果.c文件中出现未定义的符号错误,则必须指定更多的
-I
标志。如果在.o文件中出现未定义的符号错误,则必须指定更多的
-l
标志。如果出现
找不到-l..
错误,则必须指定更多
-l
标志。

8年后

我今天偶然发现了这个问题,我想你可能想看看

2016年3月发布的VC++for Linux允许您在VC++中创建一个项目,然后使用本机Linux工具在Linux机器/VM中构建它。此外,您还可以从VS中调试应用程序,因为Linux工具允许VS调试器通过SSH在您的Linux机器/VM中驱动GDB


看起来这几乎正是@mspoerr所要求的:)

这个生成文件可以从VisualStudio生成吗?要使其在Linux下工作,需要进行哪些更改/MSPoerrVS的某些版本可以为nmake生成生成文件,nmake是一个基于Windows CLI的生成系统。“让您发现on*nix系统”有点不同。你需要消除这些差异。在我看来,1)在Windows上使用Code::Blocks(或一些跨平台IDE)和gcc使构建系统工作,然后在Linux上使用它,或者2)使用外观类似于VS的KDevelop添加源文件/libs等,并为您创建一个基于autoconf的构建系统,都会更容易,我是否可以使用现有的VisualStudio设置并将其保存为makefile?并在Linux下使用它。可能吗/MSPErrVisual C++至少在一段时间以前支持向MaFIX文件导出项目/解决方案。您可以尝试一下,但是生成的makefile(或者当时)非常混乱。您还可以尝试创建一个XSLT来将项目文件(不是解决方案)转换为您喜欢的任何文件,包括Makefile或CMake文件。没有makefile编译是愚蠢的。@Zifre:我已经更新了我的答案,推荐了一个构建工具。我认为我的答案是并且是有见地的,对于故障排除非常有用,即使使用了构建工具。