在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的解決方案是處理它的最好方法。 –