【问题标题】:Cmake in QtCreator: Source file not displayed in project file tree viewQtCreator中的Cmake:源文件未显示在项目文件树视图中
【发布时间】:2014-11-20 11:55:09
【问题描述】:

我正在使用 CMake och QtCreator 编写 C 代码。我通过打开顶层的 CMakeLists.txt 文件来打开我的项目。 我在 QtCreator 的项目文件树视图中看到了所有用于构建可执行文件或库的文件,如下所示:

add_library( my_lib file1.c )
add_executable( my_executable file2.c )

但我有一个文件用于 postgres 的预编译,如下所示:

set( MY_CMD "/usr/pgsql-9.3/bin/ecpg" )
set( MY_ARG "file3.pgc" )
add_custom_target( dummy_target ALL COMMAND ${MY_CMD} ${MY_ARG} WORKING_DIRECTORY ${MY_DIR} )

文件 file3.pgc 未显示在项目文件树视图中。如何让 QtCreator 找到该文件?

【问题讨论】:

    标签: cmake qt-creator


    【解决方案1】:

    SOURCES 选项添加到add_custom_target (http://www.cmake.org/cmake/help/v3.0/command/add_custom_target.html):

    add_custom_target(dummy_target ALL 
        COMMAND ${MY_CMD} ${MY_ARG} 
        WORKING_DIRECTORY ${MY_DIR} 
        SOURCES "${MY_DIR}/file3.pgc")
    

    【讨论】:

    • 如果我改用 add_custom_command 有什么办法吗? @jet47
    • 我不确定。不过,如果您使用 add_custom_command,您需要将输出文件附加到某个目标,以便您可以将源添加到该目标。
    • 不,我在 add_library 中使用输出(一个 c 文件)。 @jet47
    • add_library(my_lib generated_file.c file3.pgc) 实际构建。这不就是错了吗!? file3.pgc 不应内置到 my_lib 中。 @jet47
    • add_library 仅构建 C/C++ 源代码,所有其他文件仅添加到 IDE(例如标头)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多