Я обнаружил, что решение простое, но прежде чем углубляться в решение, имейте в виду, что модуль компиляции C (по крайней мере, C Compiler и Assembler) компилирует каждый чистый исходный файл C после разрешения необходимых директив препроцессора и генерирует перемещаемый объектный файл в результате компиляции.
После того, как модуль компиляции выполнит свою работу, есть еще один модуль, который отвечает за индивидуальное объединение каждого исходного файла, который успешно скомпилирован, в перемещаемую форму одного большого объектного файла для всех. Этот модуль называется Linker, а операция - Linking.
Очень важной особенностью перемещаемого объектного файла является то, что то, что называется переменной, функцией, пока что будет обозначаться как символ. Компоновщик должен решать символы, определяя то, что изначально определено в объектном файле, ссылаться на то, что используется в другом, на их исходный объектный файл.
После этого мы можем вызывать main () функцию как main () символ.
Я обнаружил, что проблема в том, что исходный файл, содержащий функцию main (), не был скомпилирован. В результате отсутствует перемещаемый объектный файл, содержащий символ, соответствующий функции main (). Следовательно, компилятор жалуется: вы просили меня использовать (ссылаться) на символ, который вы гарантированно найдете (определите) в другом файле, но я не нашел такого символа!
Решение:
Для Kiel IDE - поставить исходный файл в очередь для компиляции; вы должны добавить его в категорию «Исходная группа», щелкнув правой кнопкой мыши, либо добавив новые файлы в группу, либо существующие файлы в группу. В результате получится что-то вроде следующего рисунка:
Теперь у нас есть основная функция, которая позже обращается (определяется) к основному символу и обнаруживается компоновщиком, чтобы ссылаться на нее в любых других перемещаемых объектных файлах.
person
Ahmed Shaban Helwa
schedule
14.10.2018