Linux下Cmake生成的库,可执行文件都是可以直接放在编者自己设定的目录。而Windows则多了个debug和release的不同。

比方说我们将库生成的目录设定为lib/,那么Linux下就直接是lib/目录了,而Windows编译的debug版本则是在lib/Debug下,release在lib/release下。那么怎么在引用库的时候区分呢?一种方法是在Cmake的合适加个预编译的宏,另一种方法则是使用cmake的自带宏CMAKE_INTDIR。用法:

set(BASELIB_LIBRARY "${PROJECT_SOURCE_DIR}/../BaseLib/lib/" CACHE INTERNAL "BaseLib Library location" )
IF(WIN32)
    set(BASELIB_LIBRARY "${BASELIB_LIBRARY}/${CMAKE_INTDIR}")
ENDIF()

Logo

更多推荐