আমার একটি মেকফিলের সাথে একটি ছোট প্রকল্প রয়েছে যা আমি সিএমকে রূপান্তর করার চেষ্টা করছি, বেশিরভাগই কেবল সিএমকেকের সাথে অভিজ্ঞতা অর্জনের জন্য। এই উদাহরণের উদ্দেশ্যে, প্রকল্পটিতে একটি উত্স ফাইল (সি ++, যদিও আমি মনে করি ভাষাটি বিশেষভাবে প্রাসঙ্গিক নয়) এবং একটি স্থির লাইব্রেরি ফাইল যা আমি অন্য কোথাও থেকে অনুলিপি করেছি। যুক্তির পক্ষে ধরে নিন যে গ্রন্থাগারের উত্স কোডটি উপলভ্য নয়; আমার কাছে কেবল .a ফাইল এবং সংশ্লিষ্ট শিরোনাম।
আমার হস্তনির্মিত মেকফিলটিতে এই বিল্ড রুলটি রয়েছে:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
যা ভাল কাজ করে। আমি কীভাবে সিএমকে বলি এটি পুনরুত্পাদন করতে? আক্ষরিকভাবে এই সঠিক মেকফিলটি নয়, তবে এমন কিছু যা সমতুল্য লিঙ্কিং কমান্ডকে অন্তর্ভুক্ত করে। আমি যেমন স্পষ্ট কিন্তু নির্লজ্জ উপায় চেষ্টা করেছি
add_executable(main main.cpp libbingitup.a)
বা
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
পাশাপাশি link_directories(.)
বা অন্যান্য সহ বিভিন্ন জিনিস add_library(bingitup STATIC IMPORTED)
তবে এখন পর্যন্ত এমন কিছু নেই যা সফল লিঙ্কেজের ফলস্বরূপ। আমার কী করা উচিত?
সংস্করণের বিবরণ: লিনাক্সে সিএমকে 2.8.7 (কুবুন্টু 12.04) জিসিসি 4.6.3 সহ 6