реклама на сайте
подробности

 
 
> Статическая линковка в MinGW, под RTOS-32
Николай КОКОРИН
сообщение Dec 10 2009, 10:50
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 22-03-05
Пользователь №: 3 589



Извините, если запостил не в тот раздел. Только тут упоминание про GNU.
После сборки простейшего проекта в MinGW получаю зависимый от msvcrt.dll исполняемый файл. Подскажите что делать, как избавиться от msvcrt.dll в зависимостях? Операционка RTOS-32 (www.on-time.com) частично совместима по АПИ с виндой, а я пишу динамически загружаемый для неё модуль. С тасканием dll там некоторый гемор, так просто не загрузишь. Получается так, что для того, чтобы загрузить msvcrt.dll необходимо ещё загрузить виндовские kernel32.dll и ntdll.dll - не вариант.

Пример, есть стандартрая си-шная либа libmsvcrt.a (входит в состав MinGW) и я пытаюсь слинковать её статически со своей прогой:
Код
/* hello.c */
#include <stdio.h>
int main(int argc, char *argv[])
{
    printf("hello, world\n");
    return(0);
}

А вот командная строчка для сборки:
Код
gcc.exe hello.c -static -lmsvcrt -o hello

В итоге получается файл hello.exe с зависимостью от msvcrt.dll. Вот список требующихся функций:
Код
__getmainargs
__p__environ
__p__fmode
__set_app_type
_cexit
_fmode
_fpresent
_iob
_onexit
_setmode
atexit
puts
signal

Как на MinGW можно сбилдить прогу без зависимости от msvcrt.dll ? После билда в VS с ключом /MT той же проги msvcrt.dll в зависимостях нет.
Подскажите в какую сторону копать.
ЗЫ: приложил файлики

Сообщение отредактировал Николай КОКОРИН - Dec 10 2009, 10:52
Прикрепленные файлы
Прикрепленный файл  Hello.zip ( 27.86 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016