我已經建立了一個共享庫,並通過CMake(2.8)項目與共享庫和測試應用程序使用的lib
現在一個測試程序,make install
後,我得到一棵樹是這樣的:
root/
lib/
mylib.so
samples/
test1
test2
...
現在,當我跑我的test
的應用程序,它無法找到共享庫文件來運行:
error while loading shared libraries: mylib.so: cannot open shared object file: No such file or directory
我該如何解決這個問題?
編輯
這裏是我的CMakeLists.txt
相關的部分爲mylib
add_library(mylib SHARED ${LIB_SOURCES})
target_link_libraries(mylib ${VTK_LIBRARIES} ${OpenCV_LIBS})
install(TARGETS mylib DESTINATION lib)
install(FILES include/mylib.h DESTINATION include)
install(DIRECTORY models DESTINATION .)
add_subdirectory(samples)
對於可執行文件的文件夾:
file(GLOB APP_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
foreach(samplesourcefile ${APP_SOURCES})
string(REPLACE ".cpp" "" samplename ${samplesourcefile})
add_executable(${samplename} ${samplesourcefile})
target_link_libraries(${samplename} mylib)
install(TARGETS ${samplename} DESTINATION samples)
endforeach(samplesourcefile)
你能展示你的相關部分CMakeLists.txt嗎? – hetepeperfan
@hetepeperfan做:) – manatttta
嗯,我不知道如果我正確。但'target_link_libraries($ {samplename} mylib)'不屬於foreach循環。您只需鏈接一次。所以我會盡量讓它脫離循環,但我不確定這是否能解決您的問題。我認爲安裝線也是如此。 – hetepeperfan