You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行CMake命令后build_debug、build_release文件夹为空的求助

问题描述

我正在遵循gtkmm的CMake教程,但运行cmake -DCMAKE_BUILD_TYPE=Debug ../并执行make后,build_debug和build_release文件夹是空的,看不到任何编译产物。

我编译的代码如下:

#include <gtkmm.h>
int main(int argc, char * argv[])
{
    auto app = Gtk::Application::create("org.gtkmm.example");
    return 0;
}

父目录下的CMakeLists.txt内容:

cmake_minimum_required(VERSION 3.26)
project(exmaple)
find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-4.0)
add_subdirectory(src)

src子目录下的CMakeLists.txt内容:

link_directories(
    ${GTKMM_LIBRARY_DIRS}  )

include_directories(
    ${GTKMM_INCLUDE_DIRS}  )

add_executable(app
    main.cpp)

target_link_libraries(app 
    ${GTKMM_LIBRARIES}  )

运行命令后,两个build文件夹均为空,当前目录结构如下:

.
├── build_debug
├── build_release
├── CMakeCache.txt
├── CMakeFiles
│   ├── 3.26.1
│   │   ├── CMakeCCompiler.cmake
│   │   ├── CMakeCXXCompiler.cmake
│   │   ├── CMakeDetermineCompilerABI_C.bin
│   │   ├── CMakeDetermineCompilerABI_CXX.bin
│   │   ├── CMakeSystem.cmake
│   │   ├── CompilerIdC
│   │   │   ├── a.out
│   │   │   ├── CMakeCCompilerId.c
│   │   │   └── tmp
│   │   └── CompilerIdCXX
│   │       ├── a.out
│   │       ├── CMakeCXXCompilerId.cpp
│   │       └── tmp
│   ├── app.dir
│   │   ├── build.make
│   │   ├── cmake_clean.cmake
│   │   ├── compiler_depend.internal
│   │   ├── compiler_depend.make
│   │   ├── compiler_depend.ts
│   │   ├── DependInfo.cmake
│   │   ├── depend.make
│   │   ├── flags.make
│   │   ├── link.txt
│   │   ├── progress.make
│   │   └── src
│   │       ├── main.cpp.o
│   │       └── main.cpp.o.d
│   ├── cmake.check_cache
│   ├── CMakeConfigureLog.yaml
│   ├── CMakeDirectoryInformation.cmake
│   ├── Makefile2
│   ├── Makefile.cmake
│   ├── pkgRedirects
│   ├── progress.marks
│   └── TargetDirectories.txt
├── cmake_install.cmake
├── CMakeLists.txt
├── Makefile
└── src
    ├── app
    ├── CMakeFiles
    │   ├── app.dir
    │   │   ├── build.make
    │   │   ├── cmake_clean.cmake
    │   │   ├── compiler_depend.make
    │   │   ├── compiler_depend.ts
    │   │   ├── DependInfo.cmake
    │   │   ├── depend.make
    │   │   ├── flags.make
    │   │   ├── link.txt
    │   │   ├── main.cpp.o
    │   │   ├── main.cpp.o.d
    │   │   └── progress.make
    │   ├── CMakeDirectoryInformation.cmake
    │   └── progress.marks
    ├── cmake_install.cmake
    ├── CMakeLists.txt
    ├── main.cpp
    └── Makefile
问题原因与解决方法

从目录结构能看出,你没有在build_debug或build_release目录内执行cmake命令,而是直接在项目根目录运行了命令,导致CMake生成的构建文件、编译产物都跑到了根目录和src目录下,build文件夹自然为空。

正确的操作步骤应为:

  • 针对Debug版本:
    cd build_debug
    cmake -DCMAKE_BUILD_TYPE=Debug ../
    make
    
  • 针对Release版本:
    cd build_release
    cmake -DCMAKE_BUILD_TYPE=Release ../
    make
    

执行后编译产物会生成在对应的build目录中。

另外注意父目录CMakeLists里的项目名拼写错误:project(exmaple)应为project(example),虽不影响编译,但建议修正以保证规范。

内容的提问来源于stack exchange,提问作者binary_psychic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:24:56