Создание простого «привет мира» и связывание его вместе с 2 предварительно скомпилированными объектами

В моем созданном проекте я получил «IGEL1.OBJ» и «IGEL2.OBJ», а также «IGEL.H».

В Orwell Dev-C ++ я делаю следующие шаги:

  1. ‘File’ -> ‘New’ -> ‘Project …’
  2. Регистрация ‘Basic’ -> ‘Консольное приложение’ -> ‘C Project’
  3. ‘Имя:’ -> IgelTest -> ‘OK’.

Затем в разделе «Проект»

  1. щелкните правой кнопкой мыши на «IgelTest»
  2. «Добавить в проект»

Добавление соответственно

  • IGEL1.OBJ
  • IGEL2.OBJ
  • IGEL.H

Как только я это сделаю, я иду к

  1. ‘Project’
  2. «Параметры проекта»
  3. Зарегистрировать «Файлы»
  4. щелкните левой кнопкой мыши на «IGEL1.OBJ»
  5. установите флажок «Включить в ссылку» в разделе «Файлы»
  6. повторите то же самое для ‘IGEL2.OBJ’
  7. щелкните левой кнопкой мыши «ОК»

Теперь у меня есть «main.c» в моем представлении, нажмите на «Compile & Run ‘и получите следующее сообщение об ошибке:
mingw32-make.exe: * Нет правила для создания цели ‘IGEL1.o’, необходимой для ‘IgelTest.exe’. Стоп.

Я загрузил папку проекта здесь:
https://mega.co.nz/#F!ggpWEJIK!bHu30zK8y4UXU-LoAdcddQ

Вот вставка из ‘Makefile.win’:
http://pastebin.com/Pr9iS3Wc

2

Решение

Если вы посмотрите в свой Makefile.win вы увидите, что он считает, что объектные файлы
связаны:

LINKOBJ  = main.o IGEL1.o IGEL2.o

а также что на самом деле нет никаких правил для IGEL1.o, IGEL2.o, Ваши объектные файлы
IGEL1.OBJ а также IGEL2.OBJ не упоминаются вообще.

Для компилятора, который вы используете — GCC для Windows — объектные файлы обычно имеют расширение .oне .obj,

Если вы добавите любой файл name.extension в проект Dev-C ++ и проверить его на Включить в ссылку, тогда, если Dev-C ++ не распознает .расширение как расширение файлов, которые могут быть связаны, он считает, что файл является своего рода источник файл, и вы хотите связать объектный файл name.o это составлено из этого.

Вот что происходит с твоим .obj файлы. Makefile не содержит правил для создания
IGEL1.o, IGEL2.o потому что IDE не знает способа сделать .o файл из .obj файл.

Чтобы решить эту проблему, переименуйте свой .obj файлы с расширением .o, Тогда связь
может Работа. Это еще не будет работать, однако, если ваш предварительно скомпилированный .obj файлы представлены в 32-битном формате, и ваша версия Dev-C ++ использует 64-битный набор инструментов TDM GCC. Тогда вы получите сообщение об ошибке другого типа, и для ее решения вам потребуется перекомпилировать .obj файлы как 64-битные .o файлы из источника.

0

Другие решения


По вопросам рекламы [email protected]