আইগেন ইনস্টলেশনটি কাজ করেছে বলে মনে হয়েছিল, তবে আমি এখনও ইগেনের কাজটি করতে পারি না


9

আমি ইগান ইনস্টল করার চেষ্টা করছি , তবে এটি কাজ করে বলে মনে হচ্ছে না।

আমি করেছিলাম:

sudo apt-get install libeigen3-dev

এবং সবকিছু ঠিক আছে, পরে

dpkg -p libeigen3-dev

আমি পাই:

Package: libeigen3-dev
Priority: extra
Section: libdevel
Installed-Size: 3718
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: eigen3
Version: 3.2.0-4
Depends: pkg-config
Suggests: libeigen3-doc
Size: 698062
Description: lightweight C++ template library for linear algebra
 Eigen 3 is a lightweight C++ template library for vector and matrix math,
 a.k.a. linear algebra.
 .
 Unlike most other linear algebra libraries, Eigen 3 focuses on the simple
 mathematical needs of applications: games and other OpenGL apps, spreadsheets
 and other office apps, etc. Eigen 3 is dedicated to providing optimal speed
 with GCC. A lot of improvements since 2-nd version of Eigen.
Original-Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Homepage: http://eigen.tuxfamily.org

আমার কাছে সবকিছু ঠিকঠাক লাগছিল। যাইহোক, আমি যখন বেসিক কোডটি সংকলনের চেষ্টা করি (টিউটোরিয়ালে দেওয়া হয়):

first_eigen.cpp

#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
  Matrix2d a;
  a << 1, 2,
  3, 4;
  MatrixXd b(2,2);
  b << 2, 3,
  1, 4;
  std::cout << "a + b =\n" << a + b << std::endl;
  std::cout << "a - b =\n" << a - b << std::endl;
  std::cout << "Doing a += b;" << std::endl;
  a += b;
  std::cout << "Now a =\n" << a << std::endl;
  Vector3d v(1,2,3);
  Vector3d w(1,0,0);
  std::cout << "-v + w - v =\n" << -v + w - v << std::endl;
}

আমি এটিকে শেলের মধ্যে এটি চালাই:

g++ -std=c++11 first_eigen.cpp -o my_exec

আমি নিম্নলিখিত ত্রুটি পেয়েছি:

first_eigen.cpp:2:23: fatal error: Eigen/Dense: No such file or directory
 #include <Eigen/Dense>
                       ^
compilation terminated.

সুতরাং দেখে মনে হচ্ছে এটি eigenইনস্টল করা হয়নি। আমি কী মিস করছি?

উত্তর:


10

eigen3হেডার ফাইল একটি সাব ডিরেক্টরীতে যেতে /usr/include/eigen3উদাঃ

/usr/include/eigen3/Eigen/Array
/usr/include/eigen3/Eigen/Cholesky
/usr/include/eigen3/Eigen/CholmodSupport
/usr/include/eigen3/Eigen/Core
/usr/include/eigen3/Eigen/Dense
/usr/include/eigen3/Eigen/Eigen

সুতরাং আপনাকে আপনার সংকলক কমান্ড লাইনের অতিরিক্ত অন্তর্ভুক্ত পথ নির্দিষ্ট করতে হবে specify

g++ -std=c++11 -I/usr/include/eigen3 first_eigen.cpp -o my_exec

বিকল্পভাবে (এবং সম্ভবত আরও বহনযোগ্য), আপনি pkg-configঅন্তর্ভুক্তি স্বয়ংক্রিয় করতে ডাটাবেস ব্যবহার করতে পারেন , যেমন

g++ -std=c++11 `pkg-config --cflags eigen3` first_eigen.cpp -o my_exec

4
আপনি / usr / স্থানীয় / অন্তর্ভুক্ত / usr / অন্তর্ভুক্ত / eigen3 / Eigen এর মধ্যে একটি লিঙ্ক তৈরি করতে পারেন যাতে আপনাকে আবার g ++ সহ কোনও অতিরিক্ত পতাকা ব্যবহার করতে না হয়। এটি করার জন্য, কেবলমাত্র নিম্নলিখিতগুলি sudo ln -s /usr/include/eigen3/Eigen /usr/local/include/Eigen
সম্পাদন করুন


0

Pls। দেখুন / ইউএসআর / অন্তর্ভুক্ত আপনার "আইজেন" নামে একটি ফোল্ডার রয়েছে কিনা look

আমি ইগেন এবং ইনস্টলেশন রুটিন জানি না। তবে খুব সহজেই ডিভ অন্তর্ভুক্তগুলির একটি সংস্করণ সহ নামকরণ করা হয়।

আপনার / usr / অন্তর্ভুক্ত ডিরেক্টরিতে যদি আপনার "Eigen3" ফোল্ডার থাকে তবে আপনার কোডটি এতে পরিবর্তন করতে হবে:

#include <Eigen3/Dense>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.