链接到cmake的静态库
Link to static library by cmake
我使用libnuma库有一个c 。因为我无权在根系中安装libnuma,所以我必须将其安装在用户文件夹中:/home/khangtg/opt。该文件夹包含2个主要文件夹:
- 文件夹包括包含:numAcompat1.h,numa.h,numaif.h
- 文件夹 lib 包含:libnuma.a,libnuma.la,libnuma.so,libnuma.so.so.1,libnuma.so.1.0.0.0
现在,我有一个文件.cpp包含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
以包括库的目录。在CMAKE文档中可以找到更多。这告诉链接器在哪里寻找库。
它可能看起来像这样
link_directories(/home/khangtg/opt/lib)
还添加本文档中的Include Directories命令。这看起来像这样
include_directories(/home/khangtg/opt/include)
这对于添加到您的cmake build File可能很有用:
include_directories("/home/khangtg/opt/include")
来自:cmake教程
您可能还需要更改包含:
#include "numa.h"
相关文章:
- cmake如何在fedora工作站中找到boost静态库包
- cmake在我的项目中所需的所有静态库都不成功
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 将源中的 GLEW 与 cmake 静态链接
- 在 CMAKE 中使用具有静态依赖项的库
- 在现代 CMake 项目中存档静态依赖项
- 使用 CMake 与其他静态库链接的静态库 - 一个有效,一个无效。为什么?
- Linux Mint 19 上的 CMake 3.11 无法找到静态的 Boost 库
- 强制链接静态库与 cmake 不起作用
- 静态链接到 CMake 中的 macOS 框架
- 如何使用 CMake 生成链接到静态库的 DLL
- CMake 外部和内部静态库的循环依赖关系
- CMake 不链接 C 和 C++ 静态库(未定义对函数的引用)
- 使用CMAKE构建和安装静态库
- 如何使用cmake设置OpenCV以启用动态和静态构建
- Cmake 查找模块用于区分共享库或静态库
- 当我链接动态库而不是静态库时,CMake 有效
- CMake 项目链接静态库
- 使用 CMake 在 Mac 上链接静态 GLFW 和 OpenGL
- 如何将 SDL2 用作我的静态 (CMake ) 库的 3D 方依赖项?