2013-07-09 4 views
1

Я извлекаю код, предназначенный для встроенной системы, которая использует математические функции из NEWLIB, и я хотел бы скомпилировать этот код с Visual C++ Express Edition. Однако, похоже, что часть кода внутри NEWLIB предназначена для компиляции только с помощью GCC.Компилировать математические функции из newlib с Visual C++ Express

Вопрос: Может ли NEWLIB быть каким-то образом изменен для компиляции с помощью компилятора, отличного от GCC? Как?

Я спрашиваю здесь необоснованные вещи?

В качестве примера, следующие символы не понят Визуальный Compiler:

__extension__ 
__ULong 
_mbtowc_state 
__attribute__ 

Обратите внимание, я бы Ограничусь, если бы я мог собрать с LCC. Было бы проще?

+0

Мой первый неотвеченный вопрос в Stackoverflow ... слишком сложно? слишком абсурдно? –

ответ

1

Строительство нового самолета с помощью MSVC потребует больших усилий по переносу. Вам лучше переносить свой код на libc, предоставляемый MSVC. Они должны быть в основном совместимы. Просто удалите newlib из вашей системы сборки, MSVC автоматически свяжет ваш код с его собственным libc.

Если вы можете создать свой код под MSVC, вы, вероятно, уже портировали его на libc MSVC. Если вы явно не включаете заголовки из newlib. Например, если вы включили stdio.h, по умолчанию он будет загружать версию MSVC, если вы не отмените это поведение, чтобы заставить его использовать версию newlib.