Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как указать путь к perl.h в Makefile? 
:(
    Опции темы
Dims
Дата 1.6.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



При компилляции одной программы возникают ошибки ненайденности файлов, таких как:

Код

PerlClass.cpp:49:20: error: EXTERN.h: No such file or directory
PerlClass.cpp:64:18: error: perl.h: No such file or directory
PerlClass.cpp:65:18: error: XSUB.h: No such file or directory


Эти файлы у меня хранятся в директории

Код

/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE


где, видимо, лежат исходники Перла. То есть, путь к этим инклюдам где-то теряется в Makefile. Внутри Makefile нашёл такое место

Код

### Use RPATH for storing the path to the perl lib

all: $(MIC)

ifndef STATIC
LDFLAGS += -Wl,-rpath,$(PERL_CORE)
else
LDFLAGS += -static
endif



Что это означает? Не означает ли это, что где-то здесь и надо прописать этот путь? Где? Что означает строка

Код

LDFLAGS += -Wl,-rpath,$(PERL_CORE)


?
PM MAIL   Вверх
vinick
Дата 1.6.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 4
Всего: 22



Эта строка относится к параметрам линкера. К инклюдам она отношения не имеет. Надо смотреть что-то типа CXXFLAGS

Откуда берется Makefile? он уже готовый или генерируется скриптом типа configure. Если последнее, то надо посмотреть в опциях скрипта. 
PM MAIL ICQ Jabber   Вверх
Dims
Дата 1.6.2009, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



В общем, я ошибся. Директория с перлом искалась строкой

PERL_CORE  = $(strip $(shell $(PERL) -MExtUtils::Embed -e perl_inc | sed 's/[ \t]*-I//'))

а файла Embed.pm не было. Проблема решилась установкой пакета perl-ExtUtils-Embed.

А всё-таки, что делает строка, которая меня заинтересовала изначально?

PM MAIL   Вверх
xvr
Дата 2.6.2009, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(Dims @ 1.6.2009,  21:15)
А всё-таки, что делает строка, которая меня заинтересовала изначально?

Добавляет к опциям на этапе линковки -Wl,-rpath,<путь на PERL>, что обозначает: передать линкеру (-Wl) опцию -rpath <путь на PERL>, что в свою очередь обозначает - добавить в пути поиска .so библиотек путь <путь на PERL> (этот путь будет прописан прямо в исполняемый файл). Видимо оттуда должны браться динамические библиотеки PERL'а


PM MAIL   Вверх
Dims
Дата 3.6.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Чё-то не врубаюсь.

А вот такая строка что делает:

LDFLAGS += -static

Такое впечатление, что она добавляет к переменной LDFLAGS какую-то строку. Но какую? Прямо строку "-static" что ли?
PM MAIL   Вверх
xvr
Дата 3.6.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(Dims @ 3.6.2009,  13:48)
А вот такая строка что делает:

LDFLAGS += -static

Такое впечатление, что она добавляет к переменной LDFLAGS какую-то строку. Но какую? Прямо строку "-static" что ли?

Да. Это ключ, заставляющий линкер линковать все библиотеки статически (по мере возможности  smile )

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.