ошибка программы "не устарела" в wedit lcc-win32 - PullRequest
0 голосов
/ 15 июня 2010

Я пытаюсь скомпилировать простую программу hello world на c с помощью lcc-win32 / wedit, и я немного не знаком с программированием на windows c.

#include <stdio.h>

int main(void){
 printf("hellow\n");
 return 0;
}

Когда я компилирую программу, вывод консоли будет следующим:

Wedit output window build: Tue Jun 15 09:13:17 2010

c:\lcc\lib\lcccrt0.obj .text: undefined reference to '_RtlUnwind@16'
c:\lcc\lib\lcccrt0.obj .text: undefined reference to '_signal'
c:\lcc\lib\lcccrt0.obj .text: undefined reference to '_raise'
c:\lcc\lib\lcccrt0.obj .text: undefined reference to '_exit'
asctoq.obj .text: undefined reference to '_strnicmp'
defaulttrap.obj .text: undefined reference to '__imp___iob'
defaulttrap.obj .text: undefined reference to '_fwrite'
defaulttrap.obj .text: undefined reference to '_itoa'
defaulttrap.obj .text: undefined reference to '_strcat'
defaulttrap.obj .text: undefined reference to '_MessageBoxA@16'
defaulttrap.obj .text: undefined reference to '_abort'
powlasm.obj .text: undefined reference to '_pow'
qfloat.obj .text: undefined reference to '_memset'
qfloat.obj .text: undefined reference to '_strchr'
qfloat.obj .text: undefined reference to '_memmove'
strlcpy.obj .text: undefined reference to '_memcpy'
xprintf.obj .text: undefined reference to '_localeconv'
xprintf.obj .text: undefined reference to '_strtol'
xprintf.obj .text: undefined reference to '_wcslen'
xprintf.obj .text: undefined reference to '_wctomb'
xprintf.obj .text: undefined reference to '_fputc'
search
Compilation + link time:0.1 sec, Return code: 60

когда я пытаюсь запустить программу в wedit, я получаю диалоговое окно с сообщением "hello.exe не устарел. Rebuild?"

Если я нажму да, ничего не произойдет. Если я нажму нет, появится окно с сообщением
"C: \ LCC \ Проекты \ lcc2 \ hello.exe"
Код возврата -1
Время выполнения 0,001 секунды
Нажмите любую клавишу, чтобы продолжить ...

Это продолжает происходить независимо от того, сколько раз я компилирую / перестраиваю.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 15 июня 2010

Вы должны указать компоновщику связать библиотеку времени выполнения C, а также библиотеки импорта kernel32.lib и user32.lib Windows. Последние два требуют установки Windows SDK.

Компилятор, который вы используете, довольно неясен. Вам нужно прочитать мелкий шрифт в его руководствах, чтобы понять, как правильно его настроить, чтобы компоновщик связывал эти библиотеки. Если вы не можете разобраться в этом самостоятельно или найти кого-то, знакомого с этой IDE, я бы порекомендовал вам загрузить бесплатную версию Microsoft Visual Studio Express C ++. Он заботится о многих мельчайших деталях с помощью шаблонов проектов, которые предварительно устанавливают множество настроек компилятора и компоновщика. Вам нужен шаблон консольного приложения Win32.

1 голос
/ 23 марта 2011

Кажется, что проблема заключается в «Microsoft Security Essentials» W7. Решение проблемы описано в http://compgroups.net/comp.compilers.lcc/.text-undefined-reference-to.

0 голосов
/ 15 июня 2010

Добавьте в начало страницы следующее:

#include <stdio.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...