1

我正在提取为使用 NEWLIB 的数学函数的嵌入式系统设计的代码,我想用 Visual C++ Express Edition 编译该代码。但是,似乎 NEWLIB 中的部分代码设计为仅使用 GCC 编译。

问题:可以以某种方式修改 NEWLIB 以使用 GCC 以外的编译器进行编译吗?如何?

我在这里问不合理的事情吗?

例如,Visual Compiler 无法理解以下符号:

__extension__
__ULong
_mbtowc_state
__attribute__

请注意,如果我可以使用 LCC 进行编译,我会满足于自己。这会更容易吗?

4

1 回答 1

1

使用 MSVC 构建 newlib 需要大量的移植工作。您最好将代码移植到 MSVC 提供的 libc 中。它们应该大部分是兼容的。只需从您的构建系统中删除 newlib,MSVC 就会自动将您的代码链接到它自己的 libc。

如果您可以在 MSVC 下构建您的代码,那么您可能已经将其移植到 MSVC 的 libc 中。除非您明确包含来自 newlib 的标头。例如,如果您包含stdio.h,默认情况下它将获取 MSVC 的版本,除非您覆盖此行为以使其使用 newlib 的版本。

于 2015-06-12T22:27:58.743 回答