“Pas de règle pour faire de cible” erreur dans cmake lors de la liaison à la bibliothèque partagée

Dans Ubuntu, j'ai téléchargé un tiers de la bibliothèque partagée, mylibrary.so, que j'ai placé dans le répertoire /home/karnivaurus/Libraries. J'ai également placé les associés fichier d'en-tête, myheader.h, dans le répertoire /home/karnivaurus/Headers. Maintenant, je veux le lien de cette bibliothèque dans mon code C++, en utilisant cmake. Voici mon CMakeLists.txt fichier:

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)

Cependant, cela me donne le message d'erreur:

:-1: error: No rule to make target `/home/karnivaurus/Libraries/mylibrary', needed by `demo'.  Stop.

Ce qu'il se passe?

1. Avez-vous vraiment besoin de soutien CMake ancienne 2.0? 2. Ne devrait pas le nom de la bibliothèque sur le disque libmylibrary.so? Si elle ne l'est pas, vous pourriez essayer d'ajouter de la .so extension de target_link_libraries(), il pourrait aider unconfuse.
Si j'ajoute le .so extension, il me donne l'erreur: cannot find -lmylibrary
Vous pouvez lier la bibliothèque manuellement, c'est à dire dans un projet de ne pas utiliser CMake? Si oui, quelle ligne de commande réalise que? Il pourrait être possible de déduire la CMake syntaxe de cette. Je crois toujours que le nom de la bibliothèque ne suivent pas les conventions Linux, mais.
Êtes-vous manque un add_library appel?
Ne pas add_library construire une nouvelle bibliothèque à partir de la source? J'ai déjà donné compilé mylibrary.so fichier...

OriginalL'auteur Karnivaurus | 2014-11-07