Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 更改(外部项目)源时,CMake EXTERNALPROJECT_ADD不会触发生成_C++_Cmake - Fatal编程技术网

C++ 更改(外部项目)源时,CMake EXTERNALPROJECT_ADD不会触发生成

C++ 更改(外部项目)源时,CMake EXTERNALPROJECT_ADD不会触发生成,c++,cmake,C++,Cmake,嗯,就我在这里和那里寻找问题的理解,它实际上不应该。相反,人们建议使用ADD\u CUSTOM\u TARGET。所以,我改变了这个观点: EXTERNALPROJECT_ADD(spdk SOURCE_DIR ${EXTDIR}/spdk CONFIGURE_COMMAND ./configure ${SPDK_CONFIG} BUILD_COMMAND $(MAKE) -j

嗯,就我在这里和那里寻找问题的理解,它实际上不应该。相反,人们建议使用
ADD\u CUSTOM\u TARGET
。所以,我改变了这个观点:

EXTERNALPROJECT_ADD(spdk
                    SOURCE_DIR ${EXTDIR}/spdk
                    CONFIGURE_COMMAND ./configure ${SPDK_CONFIG}
                    BUILD_COMMAND $(MAKE) -j CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} DPDK_CFLAGS=${DPDK_CONFIG}
                    INSTALL_COMMAND ""
                    BUILD_IN_SOURCE 1
                    LOG_CONFIGURE 1
                    LOG_BUILD 1
                    )
为此:

ADD_CUSTOM_TARGET(spdk-configure
                  COMMAND ./configure ${SPDK_CONFIG}
                  WORKING_DIRECTORY ${EXTDIR}/spdk
                  )

ADD_CUSTOM_TARGET(spdk
                  COMMAND $(MAKE) -j CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} DPDK_CFLAGS=${DPDK_CONFIG}
                  WORKING_DIRECTORY ${EXTDIR}/spdk
                  )

ADD_DEPENDENCIES(spdk spdk-configure)
但是,我看到每次调用构建时都会构建
spdk/spdk configure
,不管目标是否是最新的,这可能是不希望的,但是

目标没有输出文件,并且始终被视为过期 即使命令尝试创建具有目标名称的文件

我对这种行为不太满意,有没有其他更适合上述情况的选择

EDIT001: 看起来它并没有在第二次运行中建立任何东西。make重新扫描所有目标只需花费很长时间