在CMake的,你可以使用CMake的:转换相对路径绝对路径,以构建目录作为当前目录
get_filename_component(ABSOLUTE_PATH ${RELATIVE_PATH} ABSOLUTE)
然而,如../../other_program/
路径是基于源目录转换为绝对路径相对路径(即CMakeLists.txt
文件所在的目录),而不是构建目录(即调用cmake
的目录)。如果您将相对路径作为命令行选项,这可能会导致一些混淆。
有没有办法告诉get_filename_component
它应该基于当前二进制目录的相对路径而不是当前源目录?
是,这种解决方案非常适合CMake的版本3.4及更高版本。对于较早的CMake版本(低至2.6版本),mike.did的解决方案是处理它的最好方法。 –