加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在构建过程之后在cmake中编译其他源文件

发布时间:2020-12-16 07:34:44 所属栏目:百科 来源:网络整理
导读:我在cmake for windows中有一个项目,其中包含一个名为database.proc的Pro * C源文件,我的目标是从.proc文件生成一个C源文件,并将其添加到要与其他源文件链接的项目中,我试图添加一个自定义命令来实现这一点,但没有成功 add_custom_command(TARGET myproj OUT
我在cmake for windows中有一个项目,其中包含一个名为database.proc的Pro * C源文件,我的目标是从.proc文件生成一个C源文件,并将其添加到要与其他源文件链接的项目中,我试图添加一个自定义命令来实现这一点,但没有成功

add_custom_command(TARGET myproj OUTPUT PRE_LINK
    COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
        MODE=ANSI IRECLEN=255 ORECLEN=255
        ONAME=${PROJECT_SOURCE_DIR}/connection.c
    COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS}
            ${PROJECT_SOURCE_DIR}/connection.c )

有办法做到这一点吗?

解决方法

我不熟悉Pro * C,但看起来你正在混合两个不同版本的 add_custom_command.

第一个版本add_custom_command(OUTPUT …)用于生成一个文件,然后将其添加为另一个CMake目标的依赖项.构建该目标时,首先执行自定义命令以生成输出文件.

第二个版本add_custom_command(TARGET …)用于定义预构建,预链接或后构建命令;一个不一定创建文件,但与构建关联目标一起执行的文件.

如果您只有一个目标取决于Pro * C的输出,那么第一个版本可能是您最好的选择:

add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/connection.c
    COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
        MODE=ANSI IRECLEN=255 ORECLEN=255
        ONAME=${PROJECT_SOURCE_DIR}/connection.c)
add_executable(myproj ${PROJECT_SOURCE_DIR}/connection.c <other sources>)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读