【发布时间】:2015-02-22 00:17:15
【问题描述】:
我必须编写程序来更改文件夹中特定文件的扩展名。我已经完成了 Linux 版本(使用 gcc 编译),现在我想知道我应该如何编辑它才能在 Windows(在 VS 中)编译它并让它在那里工作。它必须是一个程序(我不能做 2 个版本,一个用于 gcc,一个用于 VS)。
我必须使用的语言是 C。
我在那里使用什么:
pthread.h library (multi-threading)
dirent.h library (opendir, readdir, rewinddir)
unistd.h library (chdir, usleep)
那么我应该怎么做才能让它在两个操作系统上使用相同的源代码在 windows 和 linux 中编译和工作呢?我知道我必须在 Windows 中使用不同的功能扫描文件夹并更改扩展名,但是如何将所有这些合并到一个文件中?
【问题讨论】:
-
删除所有 POSIX 系统调用并用 Win32/64 系统调用替换它们是最好的方法,或者您可以使用在两者上编译并处理相同操作的 Boost 或 QT 库
-
我相信我必须使用“标准”库。替换这些调用后,它将在 Windows 上运行,但不再在 linux 上运行。我必须编写可以在两个系统中编译并在两个系统中工作的源代码。
-
我个人更喜欢使用 MinGW——一套用于寡妇的 POSIX 库。我已经用它制作了程序和库。还有 Cygwin,但我认为这有点太重量级了。另一个问题是微软不再制作 C 编译器。 VS 仅编译 C++,或使用 1999 年以前 C 的一小部分子集的程序。
-
我相信我在这个公告之后下载了 VS,它仍然无法编译我的库,但我会更仔细地查看。
标签: c linux windows visual-studio gcc