Мне нужно создать решение на VS Express 2017 с двумя самодельными dll, LIB_COMMON и LIB_VIEW, проектом бина TEST_VIEW, содержащим main.cpp и использующим Qt.
У меня есть все необходимое в моей папке, и я устанавливаю переменные окружения при запуске решения с командным файлом.
Но у меня две проблемы. Во-первых, мне не удается связать Qt с используемыми проектами.
Во-вторых, в свойствах единственное, что я нашел, чтобы связать свой проект dll, это добавить вручную каждый файл obj (да, файлы obj, а не lib ...), как в этом примере. (LIB_VIEW содержит заголовочные файлы и файлы cpp VIEW_FACTORY, VIEW_View, VIEW_IView.
linker -> entry -> additional dependencies -> $(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_FACTORY;$(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_IView;$(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_View;kernel32.lib;user32.lib;gdi32.lib;winspool32.lib etc.
(поскольку путь к файлам obj:
SOLUTION_NAME / LIB_VIEW / Obj / x64 / Debug /
для файла lib:
SOLUTION_NAME / LIB_VIEW / Lib / x64 / Debug /
для включает в себя:
SOLUTION_NAME / LIB_VIEW / Inc /)
Это ужасно, и когда я не могу связать библиотеки Qt таким образом.
Вот некоторые подробности
Пакетный файл
set PROJECT_HOME=%~dp0
set PROJECT_TOOLS=%PROJECT_HOME%\Tools
set LIB_TOOLS=%PROJECT_HOME%\LIB_COMMON
echo "----------------------------"
echo "--- SET_ENV_QT"
echo "----------------------------"
set QT_HOME==%PROJECT_TOOLS%\Qt\5.12.0\x64\5.12.0\msvc2017_64
set QT_BIN=%QT_HOME%\bin
set QT_LIB=%QT_HOME%\lib
set QT_INC=%QT_HOME%\include
set QT_QML=%QT_HOME%\qml
echo "----------------------------"
echo "--- SET_ENV_VISUAL"
echo "----------------------------"
set LIB_COMMON=%PROJECT_HOME%\LIB_COMMON\
set LIB_VIEW=%PROJECT_HOME%\LIB_VIEW\
set PATH=%OSPL_BIN%;%OSPL_LIB%;%PATH%
echo "----------------------------"
echo "--- LAUNCH_SLN"
echo "----------------------------"
"%PROJECT_HOME%\SOLUTION_NAME.sln"
Как я уже говорил ранее, я нашел способ включить мою dll в основной проект:
в свойствах TEST_VIEW:
C/C++ -> General -> Additionnal Include directories -> $(LIB_COMMON)/Inc;$(LIB_VIEW)/Inc;$(AdditionalIncludeDirectories);$(QtGui);
linker -> entry -> additional dependencies -> $(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_FACTORY;$(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_IView;$(LIB_VIEW)\Obj\$(Platform)\$(Configuration)\VIEW_View;kernel32.lib;user32.lib;gdi32.lib;winspool32.lib etc.
Конечно, я не могу включить ни один файл Qt, они не могут быть найдены.
Что я должен изменить в свойствах?
как мне успешно включить QGuiApplication?