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


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.