将XXD作为自定义命令运行
cmake run xxd as custom command
我有一个rc
目录,我想在该目录中递归地运行xxd -i filename
。并将生成的文件添加到我的项目中。
我正在检查lua上的一些答案。我也用了类似的方法。
SET(RESOURCE_COMPILER "xxd")
SET(COMPILED_RESOURCES "rc/base.css rc/common.js")
FOREACH(F ${COMPILED_RESOURCES})
ADD_CUSTOM_COMMAND(
OUTPUT "${COMPILED_RESOURCES}/${F}"
COMMAND ${RESOURCE_COMPILER} -i "${COMPILED_RESOURCES}/${F}"
COMMENT "Compiling ${F} to binary")
LIST (APPEND COMPILED_RESOURCES "${COMPILED_RESOURCES}/${F}")
ENDFOREACH()
但是我没有看到任何文件生成
看不到输出文件的原因可能有几个。您的xxd命令在add_custom_command
中没有很好地形成,但该命令仅在输出文件需要作为同一CMakeLists.txt中的另一个CMake目标(exe或lib)的源时才会执行。
我将把您的代码片段修改为:
SET(RESOURCE_COMPILER xxd)
FILE(GLOB_RECURSE COMPILED_RESOURCES "rc/*")
FOREACH(INPUT_FILE ${COMPILED_RESOURCES})
SET(OUTPUT_FILE ${INPUT_FILE}.hex)
ADD_CUSTOM_COMMAND(
OUTPUT ${OUTPUT_FILE}
COMMAND ${RESOURCE_COMPILER} -i ${INPUT_FILE} ${OUTPUT_FILE}
COMMENT "Compiling ${INPUT_FILE} to binary")
LIST(APPEND COMPILED_RESOURCES ${OUTPUT_FILE})
ENDFOREACH()
然后,如果您有另一个依赖于${OUTPUT_FILE}
s的目标,该命令将在该目标被构建时执行:
ADD_EXECUTABLE(MY_EXE main.cc ${COMPILED_RESOURCES})
相关文章:
- 使用VS Code和CMake Tools运行自定义命令
- 运行命令 "rosbag play example.bag" 时出错。找不到与插件 rosbag/NoEncryptor 对应的库
- 无法在 geany 上运行代码。无法执行构建命令
- 通过窗口从C++代码运行 WSL 命令
- 如何使用传递给编译器的相同参数在 cmake 中运行命令?
- 有没有办法让我编写一个可以在Windows和Linux上运行的命令行游戏?
- 使用 system() 函数在C++程序中运行 cmd 命令
- 程序运行,但文件无法打开.C++中的命令行
- 在 c++ 中运行命令,然后在该程序中运行命令
- 使用 Qt 运行 Windows PowerShell 命令
- 终端命令在程序运行后自动打开图形
- 使用 (cin) 用户输入将其粘贴到 std::system 中,并在另一个终端中运行带有输入的命令
- 线程保持运行并执行命令
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- C++程序编译器在使用g++命令编译后自动运行exe文件
- 如何在Qt应用程序中通过终端命令运行分离的应用程序
- 在 中执行行命令C++运行而不返回预期结果
- 生成文件:在全局变量初始化之前通过"make all"命令运行 bash 脚本
- 将XXD作为自定义命令运行