无法在windows上编写的linux上编译c程序

时间:2017-09-14 12:19:40

标签: c++ linux gcc

我使用Microsoft Visual Studio在Windows机器上用c开发了项目。该项目已成功编译并在Windows上运行,但在尝试在Linux服务器上编译源代码(.cpp,.h)时会抛出错误,如

错误:

In file included from
warning: `#pragma once' is obsolete
SDKDDKVer.h: No such file or directory

用于编译* .cpp文件的命令是

gcc-2.95 -c -g -O2 -ffloat-store -Wall -Wpointer-arith\ -Wbad-function-cast -Wwrite-strings -Wstrict-prototypes\ -Wmissing-declarations -Werror -ftemplate-depth-25 -Iinclude file1.cpp

在线搜索但无法找到问题的直接解决方案。 在一些网站上,他们建议使用Cygwin,但我的任务是一次性活动,所以不确定是否真的需要在我的电脑上设置Cygwin。我不确定上面的错误是什么意思(因为我是c的新手)。

让我知道是否有任何地方/网站列出了从c程序从Windows迁移到linux时所需的更改。

1 个答案:

答案 0 :(得分:5)

没有将代码库从环境转换为另一个环境的方法。

编写好的代码很难。不幸的是,编写好的可移植代码更难。

基本上,您需要随时了解在哪个平台上可用的内容,仅在一个平台上可用的内容以及其他平台上的等效内容。

使用已知可在多个平台上使用的标准库和库(例如Boost)非常有用。

很难提出更具体的建议,因为这是一个相当广泛的话题。我能说的是你所显示的错误是关于特定于Windows的标题`SDKDDKVer.h,你必须以某种方式替换它。这意味着找到您在该标题中使用的任何内容的等价物。