উবুন্টু 14.04 এ ইগিজেন 3.3 কীভাবে ইনস্টল করবেন?


12

আমি উবুন্টু 14.04 ব্যবহার করছি এবং আমি উবুন্টুতে ইগেন 3.3 ইনস্টল করতে চাই। আমি ইগেন 3 (3.3) এর সর্বশেষতম সংস্করণটি ডাউনলোড করার চেষ্টা করেছি এবং নীচের হিসাবে ইনস্টল করব

mkdir build
cd build
cmake ..
make
sudo make install 

আউটপুট পছন্দ

-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h
-- Installing: /usr/local/include/eigen3/unsupported/Eigen/src/Splines/Spline.h

যাইহোক, আমি যখন আমার বর্তমান ইগেন সংস্করণটি পরীক্ষা করি dpkg -p libeigen3-devতখন আউটপুট হয়

Package: libeigen3-dev
Priority: extra
Section: libdevel
Installed-Size: 3729
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Source: eigen3
Version: 3.2.0-8
Provides: libeigen2-dev
Depends: pkg-config
Suggests: libeigen3-doc, libmrpt-dev
Size: 494158

এটি দেখায় আমার সেটআপ শেষ হচ্ছে না। আমি কীভাবে আমার উবুন্টুতে ইগেন সংস্করণটি ইনস্টল করতে পারি? সবাইকে ধন্যবাদ

আমি উত্স কোডে CmakeList.txt এর সাথে সংকলন করলে এটি ত্রুটি

-- ===============================================================
-- ============ Configuring CompileSettings  =====================
-- ===============================================================
-- ============= Look for required libraries =====================
-- Looking for Eigen Library with minimum version 3.2.90
-- Looking for Eigen via User Provided (or Cached) location
-- Eigen version 3.2.0 found in /usr/include/eigen3
CMake Warning at cmake/FindEigen.cmake:62 (message):
  Eigen version is less than requred version 3.2.90
Call Stack (most recent call first):
  cmake/FindEigen.cmake:73 (Eigen_Check_Version)
  CMakeLists.txt:23 (FIND_PACKAGE)


CMake Error at /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Eigen (missing: EIGEN_VERSION_OK) (Required is at least
  version "3.2.90")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindEigen.cmake:74 (find_package_handle_standard_args)
  CMakeLists.txt:23 (FIND_PACKAGE)

1
আপনি অতিরিক্ত পদক্ষেপ না নিলে (যেমন checkinstallএর জায়গায় প্রোগ্রামটি ব্যবহার করা make install), ডিপিকিজি সিস্টেমটি উত্স থেকে এইভাবে ইনস্টল করা প্রোগ্রামগুলির কিছুই জানতে পারবে না।
স্টিল্ড্রাইভার

দুঃখিত। এর মানে কী? আমি কীভাবে আমার সমস্যা সমাধান করতে পারি। আমি অবশ্যই নিশ্চিত করেছি যে আমি সফলভাবে 3.3 সংস্করণ ইনস্টল করি নি
জন

আপনি কী ব্যর্থ হয়েছেন বলে মনে করেন? কি pkg-config --modversion eigen3বলে? আপনি স্টাফ তৈরির চেষ্টা করার সময় আপনি আসলে কোন সংস্করণ পাবেন?
স্টিল্ড্রাইভার

কারণ আমি একটি উত্স কোড চালনা করি যার জন্য ইইগেন> = 3.2.90 সংস্করণ প্রয়োজন এবং এটি দেখায় যে আমার বর্তমান সংস্করণটি এখনও 3.2.0
জন

উত্তর:


9

ইগেন সি ++ কেবল একটি শিরোনামের গ্রন্থাগার: আপনাকে এটি ইনস্টল করতে হবে না, আপনি কেবল এটি ডাউনলোড করুন, আনজিপ করুন এবং আপনার কোডটিকে এর বিপরীতে লিঙ্ক করুন।

উদাহরণস্বরূপ, যদি আপনার কোডটি থাকে তবে my_favorite_cpp_folderআপনি করুন:

cd my_favorite_cpp_folder

এবং ধরে gccনিচ্ছি যে আপনার সংকলকটি রয়েছে এবং আইগেন শিরোনাম রয়েছে এবং /usr/local/include/eigen3/unsupported/আপনার উত্স ফাইলটির নাম হ'ল my_favorite_cpp_source_file.cppআপনি সংকলন এবং কোড করছেন এবং এটি করে ইগেন শিরোনামগুলির সাথে লিঙ্ক করেছেন:

g++ -I /usr/local/include/eigen3/ my_favorite_cpp_source_file.cpp -o my_favorite_cpp_source_file

(উপরে পোস্ট করা আপনার কোড আউটপুট থেকে, আইিগন শিরোনামগুলি /usr/local/include/eigen3/আপনার কম্পিউটারে রয়েছে)


ধন্যবাদ. যাইহোক, আমি cmake থেকে একটি ওপেন উত্স কোড সংকলন। এটি আইজেন 3 সংস্করণটি পরীক্ষা করতে লাইনটি ব্যবহার করে # Add Eigen dependencies FIND_PACKAGE(Eigen 3.2.90 REQUIRED)। CmakeList.txt
জন

যে কোনও ক্ষেত্রে আপনার সমস্যা ইগান ইনস্টল করার সাথে নয়, এটি ওপেন সোর্স লাইব্রেরি ইনস্টল করার সাথে। আপনার প্রশ্নটিতে সেই লাইব্রেরিটি ইনস্টল করার সময় আপনার প্রাপ্ত ত্রুটি বার্তাগুলি স্থাপন করা উচিত, সেগুলি তথ্যপূর্ণ হবে।
ব্যবহারকারী 2413

হ্যাঁ. আমি ত্রুটি এবং উত্সের লিঙ্কটি আপডেট করেছি
জন

কি gedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h লাইন জন্য বর্ণন #define EIGEN_WORLD_VERSIONকরতে #define EIGEN_MINOR_VERSIONকপি এবং যারা পোস্ট করুন।
ব্যবহারকারী 2413

1
ধন্যবাদ। এটি এখন কাজ করে। আমার ইনস্টল করা সফ্টওয়্যারটি কেবল একটি প্রকল্প।
জন

21

যাদের কেবল উবুন্টু এবং একই রকমের ডেবিয়ান-ভিত্তিক ডিস্ট্রোজে ( ... যা সাধারণ ঘটনা ) এটির জন্য প্রযোজ্য সাম্প্রতিক সংস্করণ প্রয়োজন , বিদ্যমান প্যাকেজটি ইনস্টল করে : যেমন,libeigen3-dev

sudo apt install libeigen3-dev

ম্যানুয়ালি ইজিন 3 ডাউনলোড এবং ইনস্টল করা বেশিরভাগ ব্যবহারের ক্ষেত্রে সম্ভবত ওভারকিল।


1
আমার কাছে সহজ মনে হলেও ব্যর্থ হয়েছে :(
ইয়ায়ার দাওন

6
libeigen3-devইগেন ৩.২ ইনস্টল করে, তিনি ৩.৩ চাইছেন, সুতরাং আপনার যদি ৩.৩ প্রয়োজন হয় তবে এই উত্তরটি ভুল।
জিন্স হিদালগো

উবুন্টু 19.04-এ প্যাকেজটি আপনাকে 3.3.7 দেয় ... যখন আপনি src ট্রি থেকে ইনস্টল করবেন github.com/PX4/eigen আপনি 20190712 হিসাবে 3.3.90 পাবেন
স্কট স্টেনসল্যান্ড 16

2

dpkgউবুন্টুর স্ট্যান্ডার্ড প্যাকেজ ম্যানেজমেন্ট সরঞ্জাম দ্বারা আপনি যে সফ্টওয়্যারটি ইনস্টল করেছেন কেবল সে সম্পর্কেই জানেন। তবে আপনি ইগান ইনস্টল করেননি। আপনি উত্স কোড থেকে ইনস্টল করেছেন এবং যেমন dpkgএটি জানেন না। এর আউটপুট dpkg -p libeigen3-devআপনি যে ইগেন ইনস্টল করেছেন তা নয়, স্ট্যান্ডার্ড প্যাকেজ পরিচালনার সরঞ্জামগুলি ব্যবহার করে ইগেনের আলাদা সংস্করণ সম্পর্কে।

আপনার sudo make installউত্সের ভিত্তিতে , উত্স থেকে আপনি যে ইগেন সংস্করণটি ইনস্টল করেছেন তা ব্যবহারের জন্য প্রস্তুত, এর ফাইলগুলি এতে উপলব্ধ /usr/local/include/eigen3/unsupported/Eigen/src


1

সংক্ষিপ্ত ফোল্ডারটি বের করার পরে ইনস্টল ফাইলটি পরীক্ষা করুন। ব্যবহার করে ইনস্টল করার দ্বিতীয় বিকল্পটি ব্যবহার করেছি cmake। যার পরে ফোল্ডারে হেডার ফাইলগুলি সহ "eigen3" ফোল্ডারটি তৈরি করা হয়েছিল /usr/local/include/

আপনার প্রকল্পে আপনি ইগেন শিরোনামগুলি এর মতো অন্তর্ভুক্ত করতে পারেন:

#include <eigen3/Eigen/Dense>

আমি এটি উল্লেখ করতে ভুলে গেছি। যেহেতু শিরোলেখ ফাইলগুলি /usr/local/include/ফোল্ডারে রয়েছে আপনাকে " g++ -I.... " ব্যবহার করে আপনার উত্স-কোড ফাইলগুলি তাদের বিরুদ্ধে সংকলন করার দরকার নেই ।

শুভকামনা!

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