我有一个使用libnuma库的C++项目。因为我无权在根系统中安装libnuma,所以必须将其安装在用户/ home / khangtg / opt的文件夹中。此文件夹包含2个主要文件夹:

  • 文件夹 include 包含:numacompat1.h,numa.h,numaif.h
  • 文件夹 lib 包含:libnuma.a,libnuma.la,libnuma.so,libnuma.so.1,libnuma.so.1.0.0

  • 现在,我有一个文件.cpp include libnuma库:
    #include <numa.h>
    

    然后通过包含内容的CMakeLists.txt构建项目:
    add_library (common Bigraph.cpp AdjList.cpp Vocab.cpp NumaArray.cpp clock.cpp)
    set (LINK_LIBS ${LINK_LIBS} common gflags numa )
    
    add_executable (warplda main.cpp lda.cpp warplda.cpp)
    add_executable (format format.cpp)
    
    target_link_libraries (warplda ${LINK_LIBS})
    target_link_libraries (format ${LINK_LIBS})
    

    运行cmake命令后,出现一些错误“无法包含numa.h”。

    因此,如何解决此错误并通过cmake构建项目。非常感谢!

    最佳答案

    您想要设置link_directories以包括库的目录。可以找到更多in the cmake docs。这告诉链接器在哪里寻找库。

    它可能看起来像这样

    link_directories(/home/khangtg/opt/lib)
    

    还要从this documentation添加include directory命令。
    看起来像这样
    include_directories(/home/khangtg/opt/include)
    

    08-24 18:32