Création hello world avec Cmake sur Vscode
Fermémamiemando Messages postés 33539 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 février 2025 - 25 oct. 2023 à 19:16
Bonjour, je voudrais créer un exe grace a cmake pour cela j'aimerais avoir un premier cmakelist.txt en chapeau qui fera les add-subdirectory pour C1 et C2 j'aimerais qu'il puisse communiquer ensemble. je voudrais avoir un cmakeLists C1 ensuite qui se trouvera dans un chemin en dessous qui devra faire mon target-link-lib vers mon C2 pour prendre ses fonctions
et je voudrais avoir un C2 donc qui avec un add-lib a une fonction juste pour dire "bonjour' mais je n'arrive pas a avoir le bon code pour mes 3 cmakelists.txt si
une personne pourrais m'aider svp :)
Windows / Edge 116.0.1938.98
- Création hello world avec Cmake sur Vscode
- Dark world telechargement - Guide
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- World 2013 - Télécharger - Traitement de texte
1 réponse
Modifié le 25 oct. 2023 à 19:19
Bonjour,
Je n'ai pas tout compris, mais pour commencer as-tu lu ce tutoriel ?
Je ne sais pas dans quelle mesure ça répondra à ta question, mais à titre indicatif, voici ce que je fais pour un projet dont le code C++ est dans src/
./CMakeList.txt
cmake_minimum_required(VERSION 2.6) project(my_project) option(BUILD_DOCUMENTATION "Create and install the doxygen documentation" OFF) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -W -Wall") set(lib ${PROJECT_NAME}) set(inc_dir "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}") set(lib_dir "${PROJECT_BINARY_DIR}/lib") set(src_dir "${PROJECT_SOURCE_DIR}/src") set(LIBRARY_OUTPUT_PATH ${lib_dir}/${CMAKE_BUILD_TYPE}) set(bin_dir "${PROJECT_BINARY_DIR}/bin") set(EXECUTABLE_OUTPUT_PATH ${bin_dir}/${CMAKE_BUILD_TYPE}) add_subdirectory(src)
./src/CMakeLists.txt
Ce fichier suppose que les sources (resp. headers) C++ sont suffixées ".cpp" (resp. .hpp")
cmake_minimum_required(VERSION 2.6) set(lib ${lib} PARENT_SCOPE) set(lib_dir ${lib_dir} PARENT_SCOPE) set(src_dir ${src_dir} PARENT_SCOPE) set(inc_dir ${inc_dir} PARENT_SCOPE) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} PARENT_SCOPE) set(LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH} PARENT_SCOPE) #include(FindBoost) #find_package(Boost 1.36.0 REQUIRED graph) #link_directories(${Boost_LIBRARY_DIRS}) #include_directories(${Boost_INCLUDE_DIRS}) set(LIB_VERSION_MINOR 1) set(LIB_VERSION_MAJOR 0) configure_file( "${src_dir}/config.h.in" "${src_dir}/config.h" ) file(GLOB_RECURSE lib_cpps "${src_dir}/*.cpp") file(GLOB_RECURSE lib_hpps "${src_dir}/*.hpp") include_directories ("${src_dir}") add_library(${lib} SHARED ${lib_cpps}) install(TARGETS ${lib} DESTINATION ${LIBRARY_OUTPUT_PATH}) install(FILES ${lib_hpps} DESTINATION ${inc_dir})
src/config.h.in
#define LIB_VERSION_MAJOR @LIB_VERSION_MAJOR@ #define LIB_VERSION_MINOR @LIB_VERSION_MINOR@
Bonne chance