2010-01-22 2 views
4

Можно ли (или будет) использовать glibc под окнами (в качестве замены msvcrt)? Я знаю, что это глупый вопрос, и ответы, подобные cygwin, появятся, но я действительно спрашиваю: можно ли связать с glibc на окнах и использовать все библиотечные функции, например, с msvcrt?Могу ли я использовать glibc под окнами?

ответ

4

glibc используется для работы на разных * nixes один раз, в наши дни glibc вполне специфичен для Linux. Это не будет работать на окнах.

+0

Спасибо, это как я боялся :( – rubenvb

+0

И таким образом мы должны переписать наш код с открытым исходным кодом на каждой платформе и окружить его множеством препроцессоров #ifdefs ... Кросс-платформенная с двумя разными мирами - это миф : Windows с одной стороны и Linux, BSD, OS X, iOS и т. Д. (Все они кросс-платформенные, кроме того!) - с другой стороны. Это война ОС, которая приводит к большому количеству некачественного кода ... –

+0

@ BrianHaak ваши претензии имеют мало общего с glibc. Glibc - это всего лишь одна из многих libs * (предоставленная хотя, одна из самых популярных) * реализация стандартных функций c * (и немного другого оттока) *. Насколько вы используете стандартные c-функции, вам не нужны платформенные зависимости #ifdefs. В вашем примере из другого комментария используется расширение GCC, а особенно α) не имеют ничего общего с библиотеками, и β) такой код обычно неодобрительно , если у автора действительно нет compelli по причинам. –

1

Возможное обходное решение может существовать: если кто-то сочетает http://0xef.wordpress.com/2012/11/17/emulate-linux-system-calls-on-windows/ с http://www.musl-libc.org/ и компилирует исходный код с gcc против musl libc вместо glibc. Итак, я не понимаю, почему никто не пишет такой аналог glibc для Windows. :-(

+0

Спасибо за интересную ссылку. Кажется, довольно хак, чтобы полагаться на обработку исключений, но эй, это могло бы просто работать достаточно хорошо ... Довольно аккуратные нонтеле! – rubenvb

+0

На самом деле мне нужно перекрестно скомпилировать библиотеки с открытым исходным кодом, разработанные только для Linux. Они не используют ссылки на систему, но современные CCC и C++, а также его STANDARD-библиотеки - что-то, что реализовано GLibC/musl-libc/newlib. Я разочарован в компиляторе Visual Studio C. Я хотел бы скомпилировать код с GCC на Linux/OS X, затем переместить OBJECT FILES в Windows и связать их с кодом приложения для Windows-платформы, который скомпилирован с MSVC. Итак, ТОЛЬКО ПРОБЛЕМА, КОТОРУЮ ИМЕЮТ - в ОС Windows, нет НИКАКОЙ GCC-совместимой СТАНДАРТНОЙ БИБЛИОТЕКИ !!! –

+0

В противном случае, как скомпилировать это в Windows: 'typedef uint8_t v16 __attribute__ ((vector_size (16)));' и т. Д., [Фрагмент Рида-Соломона QFS на GitHub] (https://github.com/quantcast/qfs /blob/master/src/cc/qcrs/prim.h)? –