#c #console-application #codeblocks #header-files #undefined-reference
#c #консоль-приложение #codeblocks #заголовочные файлы #неопределенная ссылка
Вопрос:
Недавно я унаследовал консольное приложение, для которого у меня нет файла проекта. У меня есть только исполняемый файл, main.c и куча заголовочных файлов .h . Мне нужно отредактировать main.c и создать exe-файл с моими изменениями.
-
Я создал новый проект консольного приложения C в Codeblocks, затем вставил содержимое main.c из файла «hand me down» в main.c нового проекта.
-
Я только что отредактировал имя поля в файле main.c. Очень незначительное редактирование.
-
Я вставил файлы .h в C:Program ФайлыCodeBlocksMinGWвключают.
-
Я перехожу в проект>> Параметры сборки>> Поиск каталогов>> Компилятор>> Добавить указанный выше путь включения (видел этот шаг на форуме codeblocks и в stackoverflow)
Теперь проблема в том, что я получаю ошибки, есть несколько неопределенных ссылок на ‘functionName’. Эти имена функций находятся внутри файлов .h .
Я также включил путь не только в компилятор, но и в компоновщик и компилятор ресурсов, но безрезультатно, по-прежнему получая ту же ошибку.
Некоторые из включенных .h на main.c также ссылается на другие файлы .h, которые также вставлены в папку CodeBlocks MinGW include . Вызовы include являются <>, а не «», поскольку они вставлены в mingwinclude . Эти файлы .h взяты из пакета api.
#include <stdio.h>
#include <windows.h>
#include <global.h>
#include <osfile.h>
#include <mail.h>
.. etc
Чего мне не хватает? Спасибо!
Комментарии:
1. все определения функций?
2. im, извините, что вы имеете в виду:((
3. «Что я упускаю? Спасибо!» тело функций, если у вас есть объявление в заголовке типа void functionName(); вам нужны его определения: void functionName() { … // код }
4. main.c уже работал раньше, когда предыдущий разработчик создавал исполняемый файл. я подумал, что, возможно, мне просто не хватает некоторых настроек в codeblocks.
5. неопределенные ссылки на функции означают, что в процессе компиляции компоновщик ожидает увидеть тело функции где-то в скомпилированных вами файлах .c, если их нет, появится эта ошибка, решение состоит в том, чтобы либо найти и скомпилировать их с помощью main.c, если вы можете их получить, либоопределите их самостоятельно, а это значит, напишите для этого код.