calimero88 Ответов: 2

Как связать статические библиотеки gtk 3 в code::blocks?


Привет, я просто тестирую gtk в codeblocks, я скачал библиотеки из: Статический GTK+3 для Windows | Tarnyko.net, серьезная сторона[^]

я добавил Все пути includes для mingw и gtk все пути libs, а также добавил все статические библиотеки gtk в параметры проекта.

но я все равно получаю cannot find -lgtk-3 -lgobject-2.0 -lglib-2.0

Проблема в коде::блокирует снимок экрана[^]

как мне это исправить?

Что я уже пробовал:

Я попытался удалить их с вкладки связанные библиотеки, но затем я получаю неопределенные ссылки на некоторые функции, такие как gtk_init и т. д...

2 Ответов

Рейтинг:
4

Jochen Arndt

Вы должны сказать компоновщику, где искать библиотеки. Это можно сделать либо путем добавления пути(путей) к переменной окружения LIBRARY_PATH или передавая их в командной строке с помощью -L<dir> вариант. До сих пор я не использовал кодовые блоки, но для этих путей должен быть вариант (глобальный или специфичный для конкретного проекта).

Я также не знаю, как CodeBlocks обрабатывает связывание статических библиотек. Существует опция компоновщика -Wl,-Bstatic что позволяет статически связывать все библиотеки. Если статически связаны только определенные библиотеки, то они должны передаваться с помощью -l:<libname.ext> Обратите внимание, что полное имя с расширением должно быть передано (например, -l:libgtk-3.a вместо -lgtk-3 для Linux; для Windows это, вероятно, то же самое. .библиотека расширение).

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


Рейтинг:
2

Richard MacCutchan

Это сообщения компоновщика, говорящие вам, что компоновщик не знает, где хранятся эти библиотечные файлы. Вам нужно добавить какой-то параметр с именем каталога библиотеки, чтобы он мог их найти. Я не знаю, что это может быть за вариант, так как я никогда не использовал code::blocks, но я ожидаю, что документация объяснит это.