/ usr / bin / ld: не могу найти -lfreetype qt - PullRequest
3 голосов
/ 14 марта 2009

Компиляция на Fedora 10.

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

Однако, когда я выполнил поиск -lfreetype, я нашел его в следующем каталоге. /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so.6.3.18

Есть ли способ решить эту проблему?

Большое спасибо за любой совет

Running build steps for project test1...
Creating gdb macros library...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make debug -w 
make: Entering directory `/home/steve/projects/qt/test1/test1'
/usr/bin/make -f Makefile.Debug
make[1]: Entering directory `/home/steve/projects/qt/test1/test1'
g++ -Wl,-rpath,/opt/qtsdk-2009.01/qt/lib -o test1 debug/main.o 
  debug/mainwindow.o debug/moc_mainwindow.o 
  -L/opt/qtsdk-2009.01/qt/lib 
  -lQtGui -L/opt/qtsdk-2009.01/qt/lib -L/usr/X11R6/lib 
  -pthread -lfreetype 
  -lgobject-2.0 -lSM -lICE -pthread -pthread 
  -lXrender -lfontconfig 
  -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt 
  -lglib-2.0 -ldl -lpthread
/usr/bin/ld: cannot find -lfreetype
collect2: ld returned 1 exit status
make[1]: *** [test1] Error 1
make[1]: Leaving directory `/home/steve/projects/qt/test1/test1'
make: *** [debug] Error 2
make: Leaving directory `/home/steve/projects/qt/test1/test1'
Exited with code 2.
Error while building project test1
When executing build step 'Make'

Ответы [ 7 ]

6 голосов
/ 14 марта 2009

Вы должны установить пакет freetype-devel. Пакет devel содержит файлы заголовков, которые в случае freetype должны быть расположены по адресу: /usr/include/freetype.

5 голосов
/ 20 апреля 2009

У меня была такая же проблема на Ubuntu 8.10, QT 4.5. Я «исправил» это со следующим странным хаком:

  1. После сбоя сборки переименуйте каталог lib QT во что-то другое - например, "mv ../../qtsdk-2009.01/qt/lib ../../qtsdk-2009.01/qt/lib2"

  2. Запустите «make» еще раз, и он снова потерпит неудачу.

  3. Восстановление каталога lib

  4. Запустите «make» еще раз, и теперь это работает.

Понятия не имею, почему это происходит.

0 голосов
/ 30 сентября 2009

Первое, что вы должны убедиться, это то, что на вашем компьютере установлен libfreetype.so. Используйте команду 'locate libfreetype.so', и вы можете обнаружить, что в результате есть '/usr/lib/libfreetype.so.6'. Программное обеспечение компиляции не может определить libfreetype.so.6 как разделяемую библиотеку, поэтому вам нужно сделать символическую ссылку на цель. Используйте команду 'ln -s /usr/lib/libfreetype.so.6 /usr/lib/libfreetype.so', когда вы снова скомпилируете программу, вы обнаружите, что ошибка исчезла. Вы также можете исправить ошибки, вероятно. Удачи!

0 голосов
/ 20 сентября 2009

У меня были такие же проблемы с Elive, freetype1-dev и libgtk2.0-dev и для / usr / bin / ld: не могу найти -lSM, потому что xorg-dev исправил проблему.

0 голосов
/ 10 июня 2009

Только что установил новую свежую ubuntu 9.04 (dell D820) - установил qt creator больше ничего - та же проблема

используйте опцию из S R, которая работает, потому что для этого требуется libgtk2.0-dev (это также загрузит freetype6), установленный из менеджера пакетов.

Тот же эффект вы увидите, если вы также установите qt designer из менеджера пакетов (он установит все нужные пакеты

С уважением Нико

0 голосов
/ 31 мая 2009

В Ubuntu 9.04 установка freetype1-dev & libgtk2.0-dev решает эту проблему.

Но чтобы всех удивить, хак, упомянутый Россом, тоже работает, мне бы очень хотелось узнать, как и почему ... Я изучаю исходный код QTcreator, чтобы узнать, смогу ли я узнать причину этого. Если кто-то уже знает причину, пожалуйста, дайте мне знать.

Спасибо ..

0 голосов
/ 15 мая 2009

Установить freetype1-dev libgtk2.0-dev и он будет компилироваться нормально.

...