CMAKE:构建项目时执行C 文件
CMake: Executing a C++ file when building the project
我正在开发C 项目,我想在构建上执行脚本以生成一些文件。我对Cmake不是很熟悉,所以我需要一些帮助。
和脚本是指项目中的.cpp文件。
我设法获得以下内容:
set(PrecisionCommand
${CMAKE_SOURCE_DIR}/src/main/matlab/matlabprecision.cpp
)
set(precision_output_files
${CMAKE_SOURCE_DIR}/work/variables.txt
)
add_custom_command(
OUTPUT ${precision_output_files}
COMMAND ${PrecisionCommand}
COMMENT "Running ${PrecisionCommand}"
)
add_custom_target(allocate_generate DEPENDS ${precision_output_files})
现在发生的是matlabprecision.cpp文件是在文本编辑器中打开的,而不是被执行。我该如何解决?
因为 .c
文件不是脚本,而是源文件,所以您不能直接执行它。但是,您可以首先将其编译为可执行文件:
add_executable(PrecisionCommand ${CMAKE_SOURCE_DIR}/src/main/matlab/matlabprecision.cpp)
然后运行该可执行文件:
add_custom_command(
OUTPUT ${precision_output_files}
COMMAND PrecisionCommand
COMMENT "Running PrecisionCommand"
)
请注意,命令选项使用目标名称用于运行可执行文件。cmake了解用法和:
- 将目标名称转换为路径 到可执行的。
- 在创建可执行文件和运行它之间添加适当的依赖项。
来自有关add_custom_command的文档:
如果命令指定可执行的目标(由add_executable创建),它将自动由在构建时间创建的可执行文件的位置替换。此外,将添加目标级依赖项,以便使用此自定义命令在任何目标之前构建可执行目标。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 可执行文件C++包括.obj,.lib和.dll吗?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"