। / কনফিগার কমান্ডে লাইব্রেরি পাথ কীভাবে যুক্ত করবেন?


51

আমি ./configureএকটি লাইব্রেরিতে লিঙ্ক করতে চাই এবং কিছুতে ফাইল অন্তর্ভুক্ত। আমার গ্রন্থাগারটি সঞ্চয় করা আছে /home/foo/sw/lib/এবং আমার ফাইলগুলি সঞ্চিত রয়েছে /home/foo/sw/include।

./configure --help নিম্নলিখিতটি ছুঁড়ে ফেলেছে:

কিছু প্রভাবশালী পরিবেশ পরিবর্তনশীল:

  CC           C compiler command
  CFLAGS       C compiler flags
  LDFLAGS      linker flags, e.g. -L<lib dir> if you have libraries in a 
               nonstandard directory <lib dir>
  LIBS         libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS     (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if 
               you have headers in a nonstandard directory <include dir>
  CPP          C preprocessor

আমি বিভিন্ন সমন্বয় চেষ্টা করেছি:

./configure --prefix=/home/foo/sw -I</home/foo/sw/include> -L</home/foo/sw/lib/>
./configure --prefix=/home/foo/sw -I=/home/foo/sw/include -L=/home/foo/sw/lib/
./configure --prefix=/home/foo/sw -I/home/foo/sw/include -L/home/foo/sw/lib/
etc..

তবে আমি সিনট্যাক্সটি সঠিকভাবে পেয়েছি বলে মনে হচ্ছে না। যদি কেউ আমাকে সহায়তা করতে পারে তবে তা প্রশংসিত হবে। ধন্যবাদ!

উত্তর:


58

আপনি এর অর্থ মিস করেছেন

কিছু প্রভাবশালী পরিবেশ পরিবর্তনশীল :

সুতরাং আপনি তাদের পরিবেশ পরিবর্তনশীল হিসাবে সেট করেছেন; কনফিগারেশন কনফিগার ফাইল এবং পরিবেশ পরীক্ষা করে LDFLAGS এবং CPPFLAGS নির্ধারণ করে। আপনি তাদের এই মত সেট করতে পারেন ...

export CPPFLAGS='-I/home/foo/sw/include/'
export LDFLAGS='-L/home/foo/sw/lib/'
./configure

বা এক-লাইনার হিসাবে:

env CPPFLAGS='-I/home/foo/sw/include/' LDFLAGS='-L/home/foo/sw/lib/' ./configure

দয়া করে নোট করুন যে এটি সম্ভব যে আপনি এর অধীন সাব-ডিরেক্টরি ব্যবহার করতে পারবেন না /home/foo/sw/lib/

আপনার লাইব্রেরিটি ফিতে প্রবেশ করানো /home/foo/sw/lib/bar/আপনাকে lib not foundত্রুটি দেখাতে পারে

তবে আপনি একাধিক এন্ট্রি ব্যবহার করতে পারেন:

LDFLAGS="-L/home/foo/sw/lib/ -L/home/foo/bar/lib/"


4
হতে পারে সিপিপিএফএলএজিএস = '- আমি / বাড়ি / ফু / এসও / অন্তর্ভুক্ত: something সিপিপিএফএলএজিএস' যদি কিছু থাকে তবে;)
— ব্রায়াম

1
হাই, রিনজুইন্ড আমি LDFLAGS=-Lএবং এর মধ্যে পার্থক্য সম্পর্কে বিভ্রান্ত LIBS=-l। সহায়তা অনুসারে, তারা একই জিনিস বলে মনে হচ্ছে। কোন পার্থক্য আছে?
— ব্যবহারকারী 15964

@ ব্যবহারকারী15964 -Lগ্রন্থাগারগুলি অনুসন্ধান করার জন্য একটি ডিরেক্টরিকে নির্দেশ করে যখন লিঙ্কারকে -lএকটি নির্দিষ্ট গ্রন্থাগারের সাথে লিঙ্ক করার জন্য অবহিত করে (এটি -Lডিফল্ট সেটের সাথে সরবরাহিত ডিরেক্টরিগুলি অনুসন্ধান করবে এটি সন্ধান করতে
— শেরেলবেসি

কেন /পরে আছে LDFLAGSকিন্তু পরে নেই CPPFLAGS? এটি কি টাইপো, বা এটি গুরুত্বপূর্ণ?
— vy32

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