我正在提取为使用NEWLIB中的数学函数的嵌入式系统设计的代码,我想用Visual C ++ Express Edition编译该代码。但是,似乎NEWLIB中的部分代码只能用GCC编译。
问题:可以以某种方式修改NEWLIB以使用GCC以外的编译器进行编译吗?怎么样?
我在这里问不合理的事情吗?
例如,Visual Compiler不理解以下符号:
__extension__
__ULong
_mbtowc_state
__attribute__
注意,如果我能用LCC编译,我会满足自己。这会更容易吗?
答案 0 :(得分:1)
使用MSVC构建newlib需要大量的移植工作。最好将代码移植到MSVC提供的libc中。他们应该大多兼容。只需从构建系统中删除newlib,MSVC会自动将代码链接到它自己的libc。
如果你可以在MSVC下构建你的代码,你可能已经将它移植到MSVC的libc了。除非您明确包含来自newlib的标头。例如,如果您包含stdio.h
,默认情况下它将获取MSVC的版本,除非您重写此行为以使其使用newlib的版本。