Хорошо, для тех, кто столкнулся с той же проблемой, вот как я ее решил:
Сначала я использовал команду locate QApplication
, чтобы найти местоположение файла заголовка QApplication
в моей системе.Обязательно запустите sudo updatedb
перед использованием locate
.Если locate
не находит местоположение QApplication
, значит, вам не хватает библиотек qt.Попробуйте sudo apt-get install qt5-default
и другие библиотеки, которые я упомянул в своем вопросе, запустите sudo updatedb
и попробуйте locate QApplication
снова.
Когда вы найдете путь к QApplication
, просто используйте опцию -I
, чтобы указатькомпилятор, чтобы использовать его.Вот пример g++ -o delaunayTest delaunayTest.cpp -lCGAL -lgmp -lCGAL_Qt5 -DCGAL_USE_BASIC_VIEWER -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets/
(потому что в моем случае QApplication
находился внутри каталога /usr/include/x86_64-linux-gnu/qt5/QtWidgets/
)
Попытка скомпилировать это, вы, вероятно, получите еще одну ошибку файла заголовка.Повторяйте тот же процесс, используя locate
, пока не получите больше ошибок файла заголовка.
В этот момент вы, вероятно, столкнетесь с ошибкой undefined reference to symbol
.
Чтобы решить эту проблему, используйте locate
снова, чтобы найти местоположение файла, который вызвал ошибку (например, libQt5OpenGL.so.5
) и добавить путь к команде компиляции как есть (например, g++ -o delaunayTest delaunayTest.cpp /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
) вместе со всеми предыдущими параметрами.
Вы, вероятно, также получите несколько undefined reference to symbol
ошибок.Просто продолжайте использовать тот же метод, пока вы не получите ничего.
На этом этапе программа должна правильно скомпилироваться и работать.
Обратите внимание, что если у вас установлено несколько версий qt, товышеописанное может не работать должным образом (если, например, в вашей системе установлено программное обеспечение, использующее qt, например MATLAB или anaconda. Вы будете знать, потому что locate
создаст много путей для каждого файла на шагах выше).В таком случае я предлагаю создать виртуальную машину, загрузить библиотеки CGAL и qt5-default
и выполнить там описанные выше шаги, поскольку весьма вероятно, что это не будет работать в системе с несколькими установками qt.