Projemi paylaşılan kütüphaneme bağlamak için CMake kullanmak istiyorum. Kütüphane sadece bir avuç proje arasında paylaşılır ve oldukça küçüktür, bu yüzden bağlantı kurulmadan önce onu inşa etmeyi çok isterim. Her seferinde inşa etmek, güncel bir derlenmiş versiyonu devam ettirmekten daha iyi bir fikir gibi görünmektedir, çünkü projeyle birlikte değiştirmem on. Ayrı, çünkü bir sonraki projede neredeyse kesinlikle ihtiyaç duyacağım şeyler içeriyor.Projenin dışındaki bir kütüphaneye statik olarak bağlanmak için CMake'i kullanma
CMake'i bunu nasıl yapılandırabilirim?
find_package(Boost REQUIRED COMPONENTS unit_test_framework)
include_directories(${BaumWelch_SOURCE_DIR}/../../grzesLib/src
${BaumWelch_SOURCE_DIR}/src
${Boost_INCLUDE_DIRS})
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-g -std=c++11 -Wall -Werror -Wextra -pedantic -Wuninitialized)
endif()
# Create the unit tests executable
add_executable(
baumwelchtests stateindextest.cpp baumiterationtest.cpp baumwelchtest.cpp sampleparameters.cpp sdetest.cpp
# Key includes for setting up Boost.Test
testrunner.cpp
# Just for handy reference
exampletests.cpp
)
# Link the libraries
target_link_libraries(baumwelchtests ${Boost_LIBRARIES} baumwelchlib grzeslib)
ama besbelli derleme başarısız olur:
ilgili proje için Bulunduğum CMakeLists.txt şöyle Sen kütüphane kurmaya ister ziyade istiyorum sözü
/usr/bin/ld: cannot find -lgrzeslib
Liba'ya .a eklerseniz işe yarar mı? – drescherjm
@drescherjm, bu kütüphane potansiyel olarak bu noktada bile derlenmiş değil, ayrıca ben ikili nerede olurdu herhangi bir yerde belirtmek yok, bu yüzden libname yardımcı olmayacaktır emin değilim. – Grzenio