Ubuntu'da, /home/karnivaurus/Libraries
dizinine yerleştirdiğim bir üçüncü taraf paylaşılan kitaplığı, mylibrary.so
indirdim. Ayrıca, /home/karnivaurus/Headers
dizinindeki ilgili başlık dosyasını myheader.h
da yerleştirdim. Şimdi Cmake kullanarak C++ kodumda bu kütüphaneye bağlantı kurmak istiyorum.Paylaşılan kitaplığa bağlanırken cmake içinde cmake hata oluşuyor
:-1: error: No rule to make target `/home/karnivaurus/Libraries/mylibrary', needed by `demo'. Stop.
Neler oluyor: Ancak
cmake_minimum_required(VERSION 2.0.0)
project(DemoProject)
include_directories(/home/karnivaurus/Headers)
add_executable(demo demo.cpp)
target_link_libraries(demo /home/karnivaurus/Libraries/mylibrary)
, bu bana hata mesajı veriyor: İşte benim CMakeLists.txt dosyasıdır?
1. gibi kod gömmek yolları önlemek için iyi olur daha esnek yansıttığınız yapmak için gerçekten 2.0 olarak ** ** antik olarak CMake desteklemek gerekir mi? 2. Kütüphanedeki diskin adı libmylibrary.so değil midir? Değilse, '.so' uzantısını' target_link_libraries() 'öğesine eklemeyi deneyebilirsiniz, bu onaylanmaya yardımcı olabilir. – Angew
Eğer '.so' uzantısını eklerseniz, o zaman bana şu hatayı verir:' -lmylibrary'yi bulamıyor – Karnivaurus
Kütüphaneye el ile bağlantı kurabilirsiniz, yani CMake kullanmayan bir projede mi? Öyleyse, hangi komut satırı bunu başarır? Bu CMake sözdizimini çıkarmak mümkün olabilir. Yine de kütüphanenin adının Linux sözleşmelerini takip etmediğine inanıyorum. – Angew