我们正在迁移到Cmake 3.0.2,Visual Studio 2013并构建64位。
以前用Cmake工作的东西现在不起作用。我将不同的库名称附加到列表,然后想要将列表中的所有库链接到项目。例如:
include_directories("${EMU_EXTERNAL_DIR}/cgal/4.4/include")
link_directories("${EMU_EXTERNAL_DIR}/cgal/4.4/lib/x64")
list(APPEND ${PROJECT_NAME}_LIBRARIES
debug CGAL_Core-vc120-mt-gd-4.4
debug CGAL_ImageIO-vc120-mt-gd-4.4
debug CGAL-vc120-mt-gd-4.4
optimized CGAL_Core-vc120-mt-4.4
optimized CGAL_ImageIO-vc120-mt-4.4
optimized CGAL-vc120-mt-4.4
)
之后我以相同的方式添加更多库。最后:
target_link_libraries(${PROJECT_NAME} ${${PROJECT_NAME}_LIBRARIES})
这导致VisualStudio在Debug中搜索Release库。如果我明确地包含Release libs的路径,那么我会得到一个VS错误:" ..找不到lib' debug.lib'" 。在我看来,Cmake没有正确解析库名称和优化/调试关键字。
任何人都有类似的问题或线索是怎么回事?它以前很常令人困惑。
谢谢!