较大的工程文件中一般会调用动态库或者静态库,如果这些库文件是当前工程包含的项目,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命令设置的内容变得没有意义。