Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > error importing function definition for `mc'


Автор: marcusmae 18.1.2008, 19:56
Здравствуйте, друзья,

Мне неоходимо перенести небольшой проект, использующий boost/thread, на Linux под компилятор Intel C/C++ 9.0 (icc/icpc). С этой целью установил на виртуальной машине SuSE Linux, сам компилятор, настроил переменные окружения, а ещё Eclipse и плагин для него. Создал новый проект, перенёс в него исходники и исправил все непереносимости. При компиляции остались только вот такие сообщения :

Код

Building file: ../BoostThread/once.cpp
/bin/sh: mc: line1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `mc'
icpc -I/home/marcus/Desktop/workspace/NumericalFramework/BoostThread -c -o BoostThread/once.o ../BoostThread/once.cpp
/bin/sh: mc: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `mc'
Finished building: ../BoostThread/once.cpp


Даже гугл не знает, что это означает smile Объясните, пожалуйста, в чём на Ваш взгляд в данном случае может быть синтаксическая ошибка непредвиденного конца файла при том, что once.cpp состоит определённо не из одной строчки. Кто такой `mc'? = Видимо, какой-то системный парсер, не имеющий отношения ни к коду, ни к компилятору? Как бы это исправить..?

Есть, конечно, одна догадка : так как я переносил исходники из Windows, то там другие маркировки окончания строк. Но я не знаю, как их быстро переделать в Unix-овые. Это может быть источником проблемы?

Автор: JackYF 18.1.2008, 20:56
Цитата(marcusmae @  18.1.2008,  18:56 Найти цитируемый пост)
Но я не знаю, как их быстро переделать в Unix-овые.

man dos2unix.

По сабжу - хз.
mc - Midnight Commander, но я хз, причём он здесь.

Автор: marcusmae 18.1.2008, 21:21
JackYF, спасибо, за инфу. Воспользовался : для проверки переконвертил несколько файлов, но ничего не изменилось - выдаёт всё ту же ошибку - одну и ту же для всех файлов! = I'm in a loss. Может быть, попробовать g++ из того же eclipse..? = Проверю.

Автор: MAKCim 18.1.2008, 21:32
marcusmae, 
сделай так
Код

# find / -type f -exec grep -H "syntax error: unexpected end of file" {} \;

явно проблема в каком-то shell-скрипте, который выполняет /bin/sh

Автор: marcusmae 18.1.2008, 21:49
MAKCim, сначала пишет, что бинарный файл bin/bash совпадает, а всё остальное - отказано в доступе. Зайду-ка я под root-ом.

Автор: MAKCim 18.1.2008, 22:08
marcusmae, 
сейчас посмотрел в hex-редакторе /bin/sh
данный текст
Цитата

syntax error: unexpected end of file

там присутствует
остается найти этот загадочный mc
пробуй так
Код

# find / -name "mc"

Автор: marcusmae 18.1.2008, 22:08
Код

MAEMARCUS-SUSE:~ # find / -name "mc"
/opt/kde3/share/locale/l10n/mc
/usr/bin/mc
/usr/lib/mc
/usr/share/mc
/usr/share/doc/packages/mc
find: WARNING: Hard link count is wrong for /: this may be a bug in your filesystem driver. Automatically turning on find's -noleaf option. Earlier results may have failed to include directories that should have been searched.
MAEMARCUS-SUSE:~ #

Автор: MAKCim 18.1.2008, 22:10
а еще лучше выложи лог-файл работы strace при сборке проекта
Код

# strace <инструкция запускающая процесс сборки> 2>log


Добавлено через 48 секунд
Цитата(marcusmae @  18.1.2008,  22:08 Найти цитируемый пост)
Пока думает. 

вырубай, я уже выше написал, где определена строка

Автор: marcusmae 18.1.2008, 22:40
MAKCim, что-то я пока не понял, что есть 
Цитата(MAKCim @  18.1.2008,  22:10 Найти цитируемый пост)
инструкция запускающая процесс сборки


Где её искать? То есть, я вижу лог в eclipse и вижу makefile и др. файлы, которые он насоздавал.

Автор: MAKCim 18.1.2008, 23:07
marcusmae, 
как ты компиляцию запускаешь?

Автор: marcusmae 18.1.2008, 23:20
Цитата(MAKCim @  18.1.2008,  23:07 Найти цитируемый пост)
как ты компиляцию запускаешь?


В eclipse нажимаю Project->Clean... Он делает чистый Rebuild.

Автор: MAKCim 19.1.2008, 11:14
marcusmae, 
приаттачь сюда Makefile eclipse

Автор: marcusmae 19.1.2008, 13:17
Цитата(MAKCim @  19.1.2008,  11:14 Найти цитируемый пост)
приаттачь сюда Makefile eclipse


Ок, вот он :

Автор: marcusmae 20.1.2008, 03:14
Ну, в общем, считаю проблему компиляции проекта решённой : я воспользовался bjam для того, чтобы построить boost/thread, а для сборки своего пакета написал обычный sh-скрипт. Вроде, работает. Хотя, что там за косяк в eclipse - так и осталось непонятно. Спасибо за Ваши ответы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)