Информация об изменениях

Сообщение Re: Qt Creator и libc6 от 29.05.2019 1:28

Изменено 29.05.2019 1:52 velkin

Re: Qt Creator и libc6
Здравствуйте, asciiz, Вы писали:

A>Здравствуйте! Подскажите, пожалуйста, как из своего исходника перескочить на определение функции из libc6? Перескакивает только на объявление в .h файле, и всё.

A>$ su -
A># cd /usr/local/src
A># apt-get source libc6

При массовой установке независимых библиотек можно ещё создавать подпапки в /usr/local/src, например, вот так:
su
cd /usr/local/src/libc6
apt source libc6

Хотя это всего лишь информация к размышлению и никак на работоспособности не отразится.

A>Каталог появился, но как его подцепить в QtCreator?


Дальше нужно скомпилировать и установить библиотеку. Инструкции обычно лежат в папках с исходниками. Это может выглядеть как-то так:
./configure
make -j9
make install

или иначе, то есть я сейчас не побегу смотреть как это делается с libc6.

Опция -j9 это "количество логических ядер процессора + 1", чтобы быстрее компилировалось, то есть если 4 физических и 8 логических ядер как у меня, то получаем -j9. Некоторые советуют собирать пакет, чтобы не мусорить, тот же deb в дебиане. А вообще система сборки может быть разной, например, cmake и так далее. Ещё раз повторю, инструкции по сборке находятся прямо в папке, если что-то не получилось, то можно воспользоваться интернет поиском и понять причину неудачи.

Теперь, что касается подключения к Qt. Предположительно make install или установка пакета прошли успешно. Подключение происходит в pro файле, с которым на самом деле работает утилита qmake, а Qt Creator это только посредник. То есть, можно было бы скомпилировать проект из консоли:
qmake project.pro
make -j9


Если библиотека "-dev" установлена из репозитория, например, пакет libcrypto++-dev, тогда подключаем её вот так:
# library crypto++
LIBS += -lcryptopp


Ещё мы могли бы указать путь к заголовочным файлам:
# library poppler
INCLUDEPATH += -I/usr/include/poppler/qt4
LIBS += -L/usr/lib -lpoppler-qt4


И наконец подключение из установленных исходников:
# library opencv
INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L"/usr/local/lib" -lopencv_core -lopencv_imgproc -lopencv_highgui


Для справки по qmake см. qmake 4.x, qmake 5.x. Дальше просто добавляем в C++ файлы #include <...>, путь должен быть относительно INCLUDEPATH и работаем как обычно, но это что касается линковки. Но здесь в любом случае скорее всего нужно копать в сторону qmake. Надо в общем проводить опыты, тогда можно сказать с гарантией какой способ сработает, но мне сейчас лень.
Re: Qt Creator и libc6
Здравствуйте, asciiz, Вы писали:

A>Здравствуйте! Подскажите, пожалуйста, как из своего исходника перескочить на определение функции из libc6? Перескакивает только на объявление в .h файле, и всё.

A>$ su -
A># cd /usr/local/src
A># apt-get source libc6

При массовой установке независимых библиотек можно ещё создавать подпапки в /usr/local/src, например, вот так:
su
cd /usr/local/src/libc6
apt source libc6

Хотя это всего лишь информация к размышлению и никак на работоспособности не отразится.

A>Каталог появился, но как его подцепить в QtCreator?


Дальше нужно скомпилировать и установить библиотеку. Инструкции обычно лежат в папках с исходниками. Это может выглядеть как-то так:
./configure
make -j9
make install

или иначе, то есть я сейчас не побегу смотреть как это делается с libc6.

Опция -j9 это "количество логических ядер процессора + 1", чтобы быстрее компилировалось, то есть если 4 физических и 8 логических ядер как у меня, то получаем -j9. Некоторые советуют собирать пакет, чтобы не мусорить, тот же deb в дебиане. А вообще система сборки может быть разной, например, cmake и так далее. Ещё раз повторю, инструкции по сборке находятся прямо в папке, если что-то не получилось, то можно воспользоваться интернет поиском и понять причину неудачи.

Теперь, что касается подключения к Qt. Предположительно make install или установка пакета прошли успешно. Подключение происходит в pro файле, с которым на самом деле работает утилита qmake, а Qt Creator это только посредник. То есть, можно было бы скомпилировать проект из консоли:
qmake project.pro
make -j9


Если библиотека "-dev" установлена из репозитория, например, пакет libcrypto++-dev, тогда подключаем её вот так:
# library crypto++
LIBS += -lcryptopp


Ещё мы могли бы указать путь к заголовочным файлам:
# library poppler
INCLUDEPATH += -I/usr/include/poppler/qt4
LIBS += -L/usr/lib -lpoppler-qt4


И наконец подключение из установленных исходников:
# library opencv
INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L"/usr/local/lib" -lopencv_core -lopencv_imgproc -lopencv_highgui


Для справки по qmake см. qmake 4.x, qmake 5.x. Дальше просто добавляем в C++ файлы #include <...>, путь должен быть относительно INCLUDEPATH и работаем как обычно, но это что касается линковки. Но здесь в любом случае скорее всего нужно копать в сторону qmake. Надо в общем проводить опыты, тогда можно сказать с гарантией какой способ сработает, но мне сейчас лень.

P.S. вот ещё идея, можно попробовать скомпилировать какую-либо библиотеку и указать пути прямо к папке со скомпилированным. Причём в некоторых проектах в инструкции написано создать подпапку вроде build и так далее, так вот надо компилировать без неё, чтобы исходник перемешался с компиляцией. А потом подключиться к этому делу, как указал выше. Проверять я это конечно не буду, во всяком случае пока, тем более шаблоны C++ это отдельный случай.