2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Компиляция для MIPS, как найти ошибку?
Сообщение16.03.2017, 11:57 
Здравствуйте.

Есть серьезная проблема. Я собирал некоторые функции, которые необходимы для операций с матрицами. Собирал я их из CLAPACK, запускал на домашнем компьютере из под CodeBlocks, собралось, заработало посчитало. Всего там 145 файлов.

Веселье начинается, когда я пытаюсь воспользоваться симулятором, где я сгребаю свой проект и пытаюсь его сбилдить:

Код:
// ----- Project: OK
// mipsel-elf32-gcc -g -EL -G0 -fno-delayed-branch -Wa,-O0 -Wa,--mc24r2 -T OK.xl $  -o OK.o
0:d:/mcstudio_3m/tools4x/bin/../lib/gcc/mipsel-elf32/4.8.1/../../../../mipsel-elf32/lib\libc.a(lib_a-fstatr.o): In function `_fstat_r':
0:(.text+0x4): undefined reference to `fstat'
0:d:/mcstudio_3m/tools4x/bin/../lib/gcc/mipsel-elf32/4.8.1/../../../../mipsel-elf32/lib\libc.a(lib_a-fstatr.o): In function `_fstat_r':
0:(.text+0x8): undefined reference to `fstat'
0:d:/mcstudio_3m/tools4x/bin/../lib/gcc/mipsel-elf32/4.8.1/../../../../mipsel-elf32/lib\libc.a(lib_a-openr.o): In function `_open_r':
0:(.text+0x4): undefined reference to `open'
0:d:/mcstudio_3m/tools4x/bin/../lib/gcc/mipsel-elf32/4.8.1/../../../../mipsel-elf32/lib\libc.a(lib_a-openr.o): In function `_open_r':
0:(.text+0x8): undefined reference to `open'
...

Чтобы не было простыни я часть лога выложил.

Это, как я понял, означает, что я использую функции, которые невозможно обработать на симуляторе. Подобные ошибки возникают, если я пытаюсь использовать оператор вывода, например.

Вопрос состоит в следующем: Есть ли способ узнать на какие именно операторы ругается компилятор в моем коде? Потому, что в логах он ссылается на себя.

 
 
 
 Re: Компиляция для MIPS, как найти ошибку?
Сообщение16.03.2017, 14:26 
Прямого и простого — нет. Это ошибки компоновщика, не компилятора. Они возникают на той стадии, когда исходного текста уже нет.

 
 
 
 Re: Компиляция для MIPS, как найти ошибку?
Сообщение16.03.2017, 14:46 
iifat в сообщении #1200916 писал(а):
Прямого и простого — нет. Это ошибки компоновщика, не компилятора. Они возникают на той стадии, когда исходного текста уже нет.


Спасибо большое за ответ. А есть ли список "запрещенных" функций, которые могли бы вызывать подобные ошибки?

 
 
 
 Re: Компиляция для MIPS, как найти ошибку?
Сообщение16.03.2017, 18:01 
Причина ваших проблем немного глубже. В заголовочных файлах у вас упомянуты функции, которых нет в библиотеках.
Я делаю такой вывод, так как код компилируется (т.е. функции объявлены), но не компонуется (т.е. определений функций нет).
Возможные причины:
- компоновщику не передана библиотека где определяются функции для работы с файловой системой (на это намекают имена fstat и open);
- заголовочные файлы от одного компилятора а библиотек и от другого (у вас ведь кросс-компиляция?). Тогда ищите определения INCLUDE и LIB или подобные.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group