我查看了对cmake使用add_custom_command的响应,但无法让它在android studio中运行。我跑步时找不到目标。
add_custom_command( TARGET b.c.o
POST_BUILD
file(RENAME ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
)
我得到以下内容:
CMake Error at CMakeLists.txt:73 (add_custom_command):
No TARGET ')' has been created in this directory.
-- Configuring incomplete, errors occurred!
See also "C:/Documents/Android_files/local_app/BApp/.externalNativeBuild/cmake/debug/x86_64/CMakeFiles/CMakeOutput.log".
失败:构建因异常而失败。
出了什么问题:
A problem occurred configuring project ':BApp'.
> executing external native build for cmake C:\Documents\Android_files\local_app\BApp\CMakeLists.txt
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
获取更多帮助
在32s内建立失败
每次运行时似乎无法找到目标文件。 你能为这件事提供一些帮助吗?
答案 0 :(得分:0)
您无法在add_custom_command中嵌套cmake命令(file是一个cmake命令)。 add_custom_command中的命令在终端中执行,而不是在cmake脚本中执行。 您可以在linux中使用mv来重命名文件:
add_custom_command(TARGET b.c.o POST_BUILD COMMAND mv ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
您可以在Windows中使用rename重命名文件:
add_custom_command(TARGET b.c.o POST_BUILD COMMAND rename ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
您可以使用cmake命令模式(可能是最佳选择):
add_custom_command(TARGET b.c.o POST_BUILD COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
或者您可以输入cmake命令:
file(RENAME ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
在名为custom_command.cmake
的单独文件中执行:
add_custom_command(TARGET b.c.o POST_BUILD COMMAND ${CMAKE_COMMAND} -P custom_command.cmake -D CMAKE_HOME_DIRECTORY=${CMAKE_HOME_DIRECTORY} )