কীভাবে CMAKE_INSTALL_PREFIX ব্যবহার করবেন


100

আমি ডিফল্ট / usr / স্থানীয় পরিবর্তে / usr এ ইনস্টলেশন তৈরি করে ইনস্টল টার্গেট সহ মেকফিল তৈরি করতে চাই। ধরে নেওয়া যায় যে উত্স উপ-ডিরেক্টরিতে বিল্ড ডিরেক্টরিটি সম্পন্ন হয়েছে, আমি কার্যকর করি:

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..

সিএমকেচে. টেক্সট এতে রয়েছে: CMAKE_INSTALL_PREFIX:PATH=/usr(ঠিক আছে?)

এখন আমি কার্যকর করি:

করা
ইনস্টল করা

সমস্ত ফাইল এখনও usr / স্থানীয় ইনস্টল করা আছে। কি সমস্যা?

সম্পাদনা: সিএমকেলিস্ট.টেক্সট প্রকল্প ফাইলগুলির মধ্যে কোনও CMAKE_INSTALL_PREFIX নেই। ক্যামকে চালানোর আগে, আমি আউটপুট ডিরেক্টরি থেকে সবকিছু মুছি। CMakeLists.txt এ নির্দেশাবলী ইনস্টল করুন:

install(TARGETS mylibrary DESTINATION lib)

উত্তর:



31

এই পরিবর্তনশীলটি ব্যবহার করার দুটি উপায় রয়েছে:

  • এটি কমান্ড লাইন আর্গুমেন্ট হিসাবে জব যেমন উল্লেখ করেছে:

    cmake -DCMAKE_INSTALL_PREFIX=< install_path > ..

  • এতে মান নির্ধারণ CMakeLists.txt:

    SET(CMAKE_INSTALL_PREFIX < install_path >)

    তবে এটি PROJECT(< project_name>) কমান্ডের আগে রাখার কথা মনে রাখবেন , অন্যথায় এটি কার্যকর হবে না!


4
আশ্চর্যের বিষয়, এসইটি () বিবৃতিটি কেবলমাত্র যদি আমি প্রকল্পের () বিবৃতি (সিএমকে ২.৮) এর পরে রাখি তবে তা আমার পক্ষে কাজ করে।
অ্যাস্ট্রোফ্লয়েড

4
এই উত্তরটি এবং এর সাথে আরও সংযুক্ত রেফারেন্সটি প্রকল্পের () কমান্ড ইস্যুর আগে / পরে সরাসরি আলোচনা করে।
ক্রেগ স্কট

এই PROJECTআদেশটি কী এবং cmakeএটির আগে এই বিকল্পটি কীভাবে থাকবে ? আপনি একটি উদাহরণ আছে?
স্টিফেন

7

তবে মনে রাখবেন এটিকে প্রকল্পের (<প্রকল্প_নাম>) কমান্ডের আগে স্থাপন করা উচিত, অন্যথায় এটি কার্যকর হবে না!

আমার সিএমকে ব্যবহারের প্রথম সপ্তাহ - জিএনইউ অটোটুলগুলির কয়েক বছর পরে - তাই আমি এখনও শিখছি (এম 4 ম্যাক্রো লেখার পরে আরও ভাল) তবে আমি মনে করি প্রকল্প নির্ধারণের পরে CMAKE_INSTALL_PREFIX সংশোধন করা আরও ভাল জায়গা।

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

set (CMAKE_INSTALL_PREFIX /foo/bar/bubba)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")
project (BarkBark)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")
set (CMAKE_INSTALL_PREFIX /foo/bar/bubba)
message("CIP = ${CMAKE_INSTALL_PREFIX} (should be /foo/bar/bubba")

প্রথম রান (কোনও ক্যাশে নেই)

CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- The C compiler identification is GNU 4.4.7
-- etc, etc,...
CIP = /usr/local (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- Configuring done
-- Generating done

দ্বিতীয় রান

CIP = /foo/bar/bubba (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
CIP = /foo/bar/bubba (should be /foo/bar/bubba
-- Configuring done
-- Generating done

আমার যদি ভুল হয় তবে আমাকে জানান, আমার অনেক কিছু শিখতে হবে। এটা মজা.


4
আপনি যখন সেট করবেন তখন ফোর্সটি ব্যবহার করার চেষ্টা করুন: সেট করুন (CMAKE_INSTALL_PREFIX / foo / bar / বুব্বা ক্যাচ পাঠ "চট্রগ্রামের উপসর্গ"
ফরেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.