无法使用cmake和Visual Studio 2017链接库

时间:2017-11-21 18:16:27

标签: c++ visual-studio cmake linker libsndfile

我无法将外部库链接到我的项目

我有以下 Xvar=stud.iloc[:,1:5] #X1=np.random.randint(22,99,size=(3,4)) kmeans1= KMeans(n_clusters=3, init='random', random_state=101) kmeans1.fit(Xvar) kmeans1.labels_ kmeans1.cluster_centers_ kmeans1.inertia_ 文件

CMakeLists

我已下载add_executable(MyProg main.cpp) LINK_DIRECTORIES(winlib) message(STATUS "SND FILE ${libsndfile}") # Link target_link_libraries( MyProg libsndfile) 库,但cmake无法使用libsndfile函数解析它。

所以我将find_library复制并重命名为我的源目录

现在我的项目结构如下所示

libsndfile-1.lib

当我尝试构建项目时,我收到以下错误

--
----winlib
------libsndfile.lib
----main.cpp
----otherfiles

我的项目有什么问题,如何链接这个库?

1 个答案:

答案 0 :(得分:1)

find_library使用PATHS参数,您可以使用该参数指定查找库的位置。

有一个特殊变量CMAKE_CURRENT_SOURCE_DIR,它解析为当前目录,您可以使用它来指定本地子目录winlib

示例:

add_executable(MyProg main.cpp)

find_library(
        LIB_SND_FILE 
        libsndfile
        PATHS 
            ${CMAKE_CURRENT_SOURCE_DIR}/winlib)

target_link_libraries(
        MyProg
        ${LIB_SND_FILE})