Cmake在用户名为'#';
我正在使用一个CMake(版本2.8.12)脚本(CMakeLists.txt),该脚本在以前的计算机上运行(可能现在仍然如此)。问题似乎是我的新计算机上的用户名现在包含了一个Cmake在用户名为'#';,cmake,Cmake,我正在使用一个CMake(版本2.8.12)脚本(CMakeLists.txt),该脚本在以前的计算机上运行(可能现在仍然如此)。问题似乎是我的新计算机上的用户名现在包含了一个。现在,CMake脚本因以下报告而失败: "add_custom_command called with OUTPUT containing a '#'. This character is not allowed." 此行中包含的参数${CMAKE\u CURRENT\u BINARY\u DIR}: add_cust
。现在,CMake脚本因以下报告而失败:
"add_custom_command called with OUTPUT containing a '#'. This character is not allowed."
此行中包含的参数${CMAKE\u CURRENT\u BINARY\u DIR}
:
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/DBSTYPEDEFS.F77 COMMAND ${MKDBSTYPEDEFS_EXE} DEPENDS {MKDBSTYPEDEFS_EXE})
展开以将我的用户名作为完整路径名的一部分
问:有没有办法解决这个问题?如果您不能简单地更改计算机上的用户名,请尝试将存储库移动到计算机上的其他位置 如果您的主目录中有当前存储库
repo1
,您将得到如下扩展:
add_custom_command(OUTPUT /home/don#robinson/repo1/generated_files/DBSTYPEDEFS.F77 COMMAND ${MKDBSTYPEDEFS_EXE} DEPENDS {MKDBSTYPEDEFS_EXE})
add_custom_command(OUTPUT /usr/local/repo1/generated_files/DBSTYPEDEFS.F77 COMMAND ${MKDBSTYPEDEFS_EXE} DEPENDS {MKDBSTYPEDEFS_EXE})
这导致了你的错误。将代码移动到其他地方,例如/usr/local/repo1
,add\u custom\u命令
中的扩展现在如下所示:
add_custom_command(OUTPUT /home/don#robinson/repo1/generated_files/DBSTYPEDEFS.F77 COMMAND ${MKDBSTYPEDEFS_EXE} DEPENDS {MKDBSTYPEDEFS_EXE})
add_custom_command(OUTPUT /usr/local/repo1/generated_files/DBSTYPEDEFS.F77 COMMAND ${MKDBSTYPEDEFS_EXE} DEPENDS {MKDBSTYPEDEFS_EXE})
这将删除错误。您可以更改您的用户名吗?或者将源代码移动到主目录之外的某个位置?无法更改用户名(域管理员不允许这样做)。但是,您将代码移动到另一个位置的简单建议是简单且有效的。不好意思,我自己没想到这一点。非常感谢。伟大的为了完整起见,我在答复中提出了我的建议。