Я сталкиваюсь с этой ошибкой crt *.o каждый раз, когда компилирую новую среду компиляции GNU, кросс- или нативную.
crt[1,i,n].o — это файлы времени выполнения c, используемые для ссылки низкого -уровня. ld и collect2 используют их для каждой отдельной компиляции. Подвох возникает, когда вы пытаетесь скомпилировать что-то очень близкое к самому компилятору. Из вашего журнала (, создающего testCCCompiler.c.o ), вы пытаетесь это сделать.
Во всех своих попытках найти уникальный и элегантный способ решить эту проблему раз и навсегда я потерпел неудачу, хотя всегда в конечном итоге преодолевал ошибки. Я предполагаю, что вы знаете, как пройти процесс компиляции GNU Make (и отладить ошибки, в частности ). CMake — это просто оболочка конфигурации для GNU Make. Вот полезные подсказки, которые могут вам помочь:
Прежде чем приступить к компиляции, определите путь к файлам crt *.o, они необходимы для устранения ошибок.
Во время компиляции промежуточный компилятор :xgcc использует -параметр поиска пути B «каталог» (, см. справочную страницу gcc ). Используйте его, вручную добавив к нему путь к файлам crt.
Создание символических ссылок на основе вывода ошибок для файлов crt избавит вас от ошибок компиляции.Но имейте в виду, что вам, скорее всего, придется переделывать это несколько раз в процессе компиляции.
Надеюсь, это поможет.
П.С. если бы я был в вашей ситуации, я бы спросил себя :действительно ли мне нужен этот testCCompiler?