Использование STXXL в проекте Qt
Как мне заставить qmake включить файл stxxl.mk в сгенерированные make-файлы?
У меня есть проект Qt, который имеет дело с большими файлами (>RAM) и, следовательно, хочу использовать STXXL. Документация STXXL гласит:
Сборка приложения
После компиляции библиотеки некоторые переменные Makefile записываются в stxxl.mk [...] в вашем каталоге STXXL_ROOT. Этот файл должен быть включен в Makefile вашего приложения.
Конечно, я могу отредактировать make-файл вручную, чтобы добавить строку include /path/to/stxxl.mk
но делать это каждый раз, когда файл.pro и, следовательно, файлы makefile, очень утомительно.
Я уже искал некоторые решения с помощью команд qmake в файле.pro, но безрезультатно. На одном форуме они предложили отредактировать исходный код qmake и перекомпилировать его, но это не вариант, если программа будет распространяться среди других, у которых нет этого "исправления" в их qmake.
Может быть, я думаю, что сложно, и есть простое решение. Я надеюсь, что здесь найдутся люди, которые решили эту проблему, работая с этой комбинацией (Qt + STXXL).
Примечание. Этот вопрос Prepend/Append Makefile к сгенерированному Qt Makefile требовал того же, но решение не подходит для моей проблемы.
1 ответ
На данный момент я остановился на следующем решении:
Поскольку файл stxxl.mk содержит "допустимый код qmake" (он присваивает переменным), я использую include(stxxl.mk) для импорта этих переменных. Итак, мой результирующий файл проекта содержит:
include(/path/to/stxxl.mk)
QMAKE_CXXFLAGS += $$STXXL_CPPFLAGS_STXXL
LIBS += $$STXXL_LDLIBS_STXXL
Это были единственные переменные stxxl.mk, которые использовались в документации, поэтому я использовал их, и это работает.