Um eine ausführbare Datei mit einer Bibliothek zu verknüpfen, die sich an einem Standardspeicherort befindet, kann man in einer CmakeLists.txt-Datei Folgendes tun:
create_executable(generate_mesh generate_mesh.cpp)
target_link_libraries(generate_mesh OpenMeshCore)
Dies würde funktionieren, wenn die Bibliothek, gegen die gelinkt wird, in
/usr/local/lib/libOpenMeshCore.dylib
In diesem Fall befindet sich die Bibliothek jedoch unter
/usr/local/lib/OpenMesh/libOpenMeshCore.dylib
Wie kann ich angeben, dass target_link_libraries sollte wirklich gegen eine Bibliothek in einem Sib-Verzeichnis platziert verknüpfen? Ich frage mich, ob es eine nützliche Option für target_link_libraries gibt, die angibt, dass sich die Bibliothek in einem Unterverzeichnis an einem Standardort befindet, z.B.
target_link_libraries(generate_mesh OpenMesh/OpenMeshCore)
Wenn das nicht möglich ist, gibt es eine Möglichkeit, find_library für die Suche zu verwenden /usr/local/lib
rekursiv, einschließlich ihrer Unterverzeichnisse, für die angegebene Bibliotheksdatei?