使用cmake编译带有Eigen库,并调用静态库的例子

文件结构

.
├── CMakeLists.txt
├── main.cpp
├── makefile
└── testEigen
    ├── testEigen.cpp
    └── testEigen.h

预准备

// 使用linux系统或者windows的wsl子系统运行
// 获取g++,eigen库等工具
sudo apt install g++ libeigen3-dev

main.cpp

#include "testEigen.h"

int main()
{
    testEigen();
    return 0;
}

teseEigen.cpp

#include "testEigen.h"
#include <iostream>
#include <Eigen/Eigen>

using namespace std;
using namespace Eigen;

void testEigen() {
   Matrix3f m;
    m << 1, 2, 3,
         4, 5, 6,
         7, 8, 9;
    cout << m << endl; 
}

testEigen.h

#pragma once

void testEigen();

CMakeLists.txt

# cmake最低版本要求
cmake_minimum_required(VERSION 3.0)
# 项目名称
project(HelloEigen)
# 添加静态库
add_library(testEigen STATIC testEigen/testEigen.cpp)
# 静态库testEigen的依赖的eigen头文件
target_include_directories(testEigen PRIVATE "/usr/include/eigen3")
# 添加可执行文件helloEigen
add_executable(helloEigen main.cpp)
# 该可执行文件的依赖头文件
target_include_directories(helloEigen PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/testEigen)
# 该可执行文件调用的静态库
target_link_libraries(helloEigen testEigen)

Guess you like

Origin blog.csdn.net/weixin_44495869/article/details/121473573