較大的工程文件中一般會調用動態庫或者靜態庫,如果這些庫文件是當前工程包含的項目,CMake會自動識別並添加Debug和Release編譯時需要的庫文件路徑和文件名,可以使用命令:
Target_Link_Libraries(${PROJECT_NAME} LibName)
但是如果要添加第三方庫文件,Debug和Release文件的路徑往往是不同的,但是文件名是相同的,上述方式只能配置一種情況。
如果要解決這個問題,需要使用Target_Link_Libraries的參數,用以區分Debug和Release不同的調用:
Target_Link_Libraries(${PROJECT_NAME} debug ${Debug_Path}/LibName release ${Release_Path}/LibName)
其中Debug_Path是第三方庫debug庫的路徑,Release_Path是第三方庫release庫文件的路徑,LibName是庫文件的文件名,注意要文件名必須要加后綴,在VS中為.lib。
這種情況下Link_Directories命令設置的內容變得沒有意義。