Неопределенная ссылка MinGW на malloc, free, sprintf, _beginthreadex

Я использую MinGW. У меня есть код, который вызывает malloc и несколько других функций общего назначения. Когда я набираю:

gcc TestCode.c

Я получаю файл .exe, он работает отлично, и я не получаю никаких предупреждений.

Если я наберу это:

gcc -c TestCode.c -o TestCode.o
ld *.o

Я получу целую кучу предупреждений, таких как:

TestCode.o:TestCode.c:(.text+0xa): undefined reference to `__main'
TestCode.o:TestCode:(.text+0x2e): undefined reference to `printf'
TestCode.o:TestCode:(.text+0x42): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0x69): undefined reference to `snprintf'
TestCode.o:TestCode:(.text+0x7e): undefined reference to `malloc'
TestCode.o:TestCode:(.text+0x93): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0xb1): undefined reference to `sprintf'
TestCode.o:TestCode:(.text+0xcf): undefined reference to `free'

Я предполагаю, что это проблема с тем, как я вызываю компоновщик. Таким образом, я буду публиковать код только в том случае, если неясно, в чем проблема. Я надеюсь, что это легко исправить, и что я просто забыл включить какую-то супер очевидную библиотеку при компоновке.

5
задан Timothy Jones 14 March 2012 в 03:26
поделиться