⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)

no rule to make target for importing existing CMake project

  • I am trying to import a project with C++ files that I already built using cmake and makefile. I am trying to import it into QT creator. However, after importing the project and trying to debug it, I get the error "no rule to make target". However, the file it is referring to exists and I never had this problem with that file when using cmake. What is going on?

  • Lifetime Qt Champion


    How are you importing the project ?

  • I went to 'open file or project' and I then opened the .creator of the project

  • Lifetime Qt Champion

    Why not directly open the CMakeList.txt of your project ?

  • Even if I try to directly open the CMakeLists.txt, I get the same no rule to make target error

  • When I did Try File -> Open File or Project and select the existing CMakeLists.txt file in Project/src/Project/ and then had Qt Creator use cmake to build it, I get the error "CMake Error at CMakeLists.txt:165 (SetupBoost): Unknown CMake command "SetupBoost".

  • Lifetime Qt Champion

    SetupBoost ? Isn't that to build boost itself ?

  • SetupBoost.cmake is in ws/mke48/cmake/Project/CMake/SetupBoost.cmake

    I generated the makefile (before using Qt) by going to ws/mke48/cmake/Project/Build, running 'ccmake' with the CMakeLists in the root source folder, pressing 'c' for configure, 'g' to generate the makefiles, 'make', 'ccmake' again, setting PRE_BUILD to false/off, 'c' again, 'g' again, and 'make' again

    The contents for SetupBoost.cmake is below:

    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)

    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)
    set(Boost_components thread date_time regex filesystem system program_options)

    macro(SetupBoost TargetName)

    message("Setting up boost for target ${TargetName}")

    set(Boost_FOUND FOUND)
    set(Boost_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/third-party/boost)


    set(Boost_LIBRARIES boost_thread-mt boost_date_time-mt boost_regex-mt boost_filesystem-mt boost_system-mt boost_program_options-mt)
    target_link_libraries(${TargetName} ${Boost_LIBRARIES})

  • Lifetime Qt Champion

    Are you sure Qt Creator is using the same cmake as you on the command line ?

Log in to reply