Skip to content

fhs-nb666/eigen_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eigen 示例项目

这是一个用于学习和演示 Eigen (C++ 线性代数库) 的小型项目。仓库把多个示例源文件放在 src/,构建产物放在 output/

目录结构

  • src/ : 示例与练习的 .cpp 源文件。
  • include/ : (可选)头文件目录。
  • lib/ : (可选)第三方/本地库目录。
  • output/ : 构建后生成的可执行文件都会放在这里。
  • Makefile : 项目构建脚本(已配置为生成 output/<basename> 可执行)。

先决条件

  • 已安装 C++ 编译器(g++clang++),支持 C++17。
  • 已安装 Eigen 头文件(Debian/Ubuntu: sudo apt install libeigen3-dev)。
  • 可选:bear(用于生成 compile_commands.json,便于 clangd)。

快速检查 Eigen 是否可用:

pkg-config --cflags eigen3
# 或检查头文件路径
ls /usr/include/eigen3/Eigen/Dense

构建与运行

在项目根运行:

make        # 构建 output/ 下的可执行

构建会为 src/ 下的源文件生成 output/<basename> 可执行(默认行为)。 例如:

./output/main
./output/comma-initializer

注意:目前的 Makefile 配置会尝试为 src/*.cpp 下的每个文件生成独立可执行。如果某个源文件不包含 main(),链接器会报 undefined reference to main。常见做法:

  • 把库/模块代码放进 src/lib/src/modules/,只把示例(含 main)放 src/examples/src/ 根目录;
  • 或把不会单独运行的文件改写为只被编译为对象并由带 main 的示例链接(可按需修改 Makefile)。

VS Code 配置(调试 & 编辑器)

  • 已包含 .vscode/launch.json:调试时会尝试运行 ${workspaceFolder}/output/${fileBasenameNoExtension},并在启动前触发 preLaunchTask: build
  • 已包含 .vscode/c_cpp_properties.json:为 Microsoft C/C++ 扩展提供 includePath(包含 /usr/include/eigen3)。
  • 已包含 .clangd:为 clangd 提供额外的 include 标志。

生成 compile_commands.json(可选但推荐,能让 clangd/IDE 获得精确编译参数)

sudo apt install bear    # 如果尚未安装
bear -- make
# 会在工作区生成 compile_commands.json

如何添加新的示例

  1. src/ 下添加新的 example_name.cpp 并在其中包含 int main()
  2. 运行 make,可执行将生成为 output/example_name
  3. 可以直接f5调试运行。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published