Ошибка при компиляции проекта CMake со статической библиотекой подпроекта с помощью QCoreApplicationC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка при компиляции проекта CMake со статической библиотекой подпроекта с помощью QCoreApplication

Сообщение Anonymous »


Я пытаюсь скомпилировать проект со статической библиотекой подпроекта.

Проблема возникает, когда я добавляю #include QCoreApplication в cglib.h. Когда я помещаю его в cglib.cpp, ошибок нет. И, конечно, если библиотека скомпилировалась как самостоятельный проект, тоже все ок.

Я не хочу включать какие-либо библиотеки Qt в основной проект, я просто хочу использовать их в библиотеке подпроекта. Я знаю, что нужно заголовкам для включения информации о классе в main.cpp.

Как избежать этой ошибки зависимостей библиотек?

CMakeLists.txt

cmake_minimum_required (ВЕРСИЯ 3.5) проект (cg_server ЯЗЫКИ CXX) установить (CMAKE_CXX_STANDARD 17) установить (CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") установить (APP_ID CGServer) включить(cmake/common.cmake) включить(cmake/models.cmake) включить(cmake/fcgi.cmake) включить(cmake/validators.cmake) включить(cmake/controllers.cmake) add_executable(${APP_ID} ${APP_SOURCES} main.cpp ) find_package (ТРЕБУЕТСЯ OpenSSL) #sudo apt install libssl-dev libfcgi-dev libpqxx-dev libjsoncpp-dev libmemcached-dev libcurl4-openssl-dev libv8-dev postgresql add_subdirectory(libs/cglib) target_link_libraries(${APP_ID} ЧАСТНЫЙ ФКГИ jsoncpp pthread завиток кэширование памяти stdc++fs pqxx ПК OpenSSL::Крипто cglib ) libs/cglib/CMakeLists.txt

cmake_minimum_required (ВЕРСИЯ 3.14) проект (cglib ВЕРСИЯ 1.0.0 ЯЗЫКИ CXX ) установить (CMAKE_AUTOUIC ON) установить (CMAKE_AUTOMOC ON) установить (CMAKE_AUTORCC ON) установить (CMAKE_CXX_STANDARD 17) установить (CMAKE_CXX_STANDARD_REQUIRED ON) find_package (ИМЯ QT Qt6 НЕОБХОДИМЫЕ КОМПОНЕНТЫ Qt5 Core Qml) find_package(Qt${QT_VERSION_MAJOR} НЕОБХОДИМЫЕ КОМПОНЕНТЫ Core Qml) add_library (cglib STATIC cglib.h cglib.cpp ) target_link_libraries(cglib ЧАСТНЫЙ Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Qml ) target_compile_definitions (cglib ЧАСТНАЯ CGLIB_LIBRARY) main.cpp

#include "include/common/app.h" #include "libs/cglib/cglib.h" int main(int argc, char** argv) { тест Cglib; тест.тест(); Приложение *app = App::instance(); if(app->init(str::fromCommandLine(argc, argv))){ вернуть приложение-> запустить(); } } cglib.h

#ifndef CGLIB_H #define CGLIB_H // #include ОШИБКА ЗДЕСЬ #include класс Cglib { публика: Cглиб(); ~Cglib(); публика: std::строковый тест(); }; #endif // CGLIB_H cglib.cpp
#include "cglib.h" #include #include #include #include Cglib::Cglib() { интервал арг; символ **argv = nullptr; Приложение QCoreApplication (argc, argv); //требуется для QJSEngine } Cglib::~Cglib() { } std::string Cglib::test() { QJSEngine _двигатель; QJSValue Three = _engine.evaluate("1 + 2"); std::cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»