如何在不清理Visual Studio缓存的情况下重建cmake项目?

时间:2019-06-24 03:50:41

标签: c visual-studio cmake

第一次成功生成项目后,我修改了子项目中的源代码并重建了项目。操作失败,并显示“ make:***无目标。停止。”

我必须清理cmake缓存才能成功重建。有什么方法可以直接重新生成目标?

这是我的代码:

# CMakeList.txt: 顶层 CMake 项目文件,在此处执行全局配置
# 并包含子项目。
#
cmake_minimum_required (VERSION 3.8)

project ("LED")

# 包含子项目。
# add_subdirectory ("test_led")
add_subdirectory("tcp")

#Linux支持头文件
include_directories("/usr/src/linux-2.6.24.4/include")
include_directories("/usr/src/linux-2.6.24.4/arch")

set(KERNEL_DIR "/usr/src/linux-2.6.24.4")


function(compile_module obj)
  set(TARGET_NAME ${obj})
  add_custom_target(${TARGET_NAME} ALL cp -f ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_BINARY_DIR}/
            COMMAND echo "compiling module ${obj}.ko..."
            )
  list(LENGTH ARGN argn_len)
  set(i 0)
  set(depend_objlist "")
  while( i LESS ${argn_len})  
    list(GET ARGN ${i} argn_value)  
    set(depend_objlist "${depend_objlist} ${argn_value}.o") 
    math(EXPR i "${i} + 1")  
  endwhile() 

  add_custom_command(TARGET ${TARGET_NAME}
             POST_BUILD
             COMMAND echo "obj-m := ${obj}.o" > ${CMAKE_CURRENT_BINARY_DIR}/Makefile
             COMMAND echo "${obj}-objs:=${depend_objlist}" >>${CMAKE_CURRENT_BINARY_DIR}/Makefile
             COMMAND echo ".PHONY:  modules"  >>${CMAKE_CURRENT_BINARY_DIR}/Makefile
             COMMAND make -C ${KERNEL_DIR} M=${CMAKE_CURRENT_BINARY_DIR} modules
             COMMAND rm -rf *.o *~ core .depend .*.cmd *.mod.c .tmp_versions

             )
endfunction()

compile_module(s3c2410-dc-motor)

这是我的错误:

开始将文件复制到远程计算机。
[rsync] rsync -t --delete --delete-excluded -v -r --exclude=.vs --exclude=.git --exclude=out  "." rsync://root@localhost:11556/temp
[rsync] sending incremental file list
[rsync] 
[rsync] sent 445 bytes  received 14 bytes  102.00 bytes/sec
[rsync] total size is 41,451  speedup is 90.31
已完成复制文件(运行时间 00h:00m:07s:879ms)。
cd $HOME/EmbeddedLinux/out/build/Linux-Release;/usr/bin/cmake --build "$HOME/EmbeddedLinux/out/build/Linux-Release"  ;

make: *** No targets.  Stop.

生成失败。

0 个答案:

没有答案