Utiliser Qt avec CLion

a marqué ce sujet comme résolu.

Bonjour,

J’allais poster un message sur le fait qu’après compilation de mon programme en utilisant CLion, aucune fenêtre n’apparaissait. Je suis allé le lancer manuellement et c’était parce qu’il manquait les d.dll dans le dossier.

Après les avoirs manuellement ajoutées une à une, le programme se lance sans soucis, même après compilation sous CLion (il le lance tout seul, pas besoin de le faire manuellement).

Ma question est : n’est-ce pas le travail du linker de faire ça ? Se débrouiller pour que les dll au moment de la compilation soit bien trouvées et utilisées ? Il y a t’il un réglage sous CLion pour que ça le fasse (comme sous Qt Creator, je compile la première fois et le programme se lance, je ne suis pas obligé de manuellement déplacer les dll).

Merci pour vos réponses ! :)

Je vous met en secret le CMakeLists.txt :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
cmake_minimum_required(VERSION 3.10)
project(Newton)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_PREFIX_PATH "D:\\Programmes\\Qt")
set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories
set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files

# Find the QtWidgets library
find_package(Qt5Core REQUIRED) # Qt += gui core
find_package(Qt5Widgets REQUIRED)

set(SOURCE_FILES main.cpp)

add_executable(Newton WIN32 ${SOURCE_FILES})
target_link_libraries(Newton Qt5::Core Qt5::Widgets)

le linker se charge juste de fusionner tous les fichiers objets (compilés à partir des .cpp) et que les fonctions appelées existent (soit dans un autre fichier objet, soit dans un fichier .a) Quand tu exécutes ton binaire, clion fait la même chose que si tu double-cliquais dessus, rien de plus. C’est à Windows de trouver les DLL (ou plutôt à être configuré pour qu’il puisse les trouver).

tu peux :

  • déplacer les DLL pour les mettre à côté de ton exécutable (faut donc les copier à chaque nouveau projet)
  • ajouter le chemin où les DLL se trouvent à la variable PATH de Window (pas conseillé à cause du DLL hell)
  • configurer ton IDE pour qu’il ajoute temporairement le chemin où les DLL se trouvent à la variable PATH (je ne sais pas comment on fait sous CLion)
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte