Çoğunlukla sadece CMake ile deneyim kazanmak için CMake'ye dönüştürmeye çalıştığım bir Makefile ile küçük bir projem var. Bu örneğin amaçları doğrultusunda, proje bir kaynak dosyası (C ++, ancak dilin özellikle alakalı olduğunu düşünmüyorum) ve başka bir yerden kopyaladığım statik bir kitaplık dosyası içeriyor. Argüman uğruna kitaplığın kaynak kodunun mevcut olmadığını varsayın; Yalnızca .a dosyasına ve ilgili başlığa sahibim.
El yapımı Makefile dosyam şu derleme kuralını içeriyor:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
hangisi iyi çalışıyor. CMake'ye bunu yeniden üretmesini nasıl söylerim? Elbette tam olarak bu makefile değil, eşdeğer bir bağlama komutu içeren bir şey. Bariz ama saf yolları denedim, mesela
add_executable(main main.cpp libbingitup.a)
veya
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
yanı sıra link_directories(.)
veya add_library(bingitup STATIC IMPORTED)
vb. ile çeşitli şeyler, ancak şimdiye kadar hiçbir şey başarılı bir bağlantıyla sonuçlanmadı. Ne yapmalıyım
Sürüm ayrıntıları: GCC 4.6.3 ile Linux (Kubuntu 12.04) üzerinde CMake 2.8.7