Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
如何在构建过程之后在cmake中编译其他源文件_C_Oracle_Cmake_Oracle Pro C - Fatal编程技术网

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

如何在构建过程之后在cmake中编译其他源文件,c,oracle,cmake,oracle-pro-c,C,Oracle,Cmake,Oracle Pro C,我在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=SYN

我在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_命令(OUTPUT…
用于生成一个文件,然后将该文件添加为另一个CMake目标的依赖项。构建该目标时,首先执行自定义命令以生成输出文件

第二个版本
add_custom_命令(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>)
add_custom_命令(输出${PROJECT_SOURCE_DIR}/connection.c
命令${PROC}iname=${PROJECT\u SOURCE\u DIR}/connection.PROC SQLCHECK=语法
模式=ANSI IRECLEN=255或ECLEN=255
ONAME=${PROJECT\u SOURCE\u DIR}/connection.c)
添加可执行文件(myproj${PROJECT\u SOURCE\u DIR}/connection.c)