我的問題與.so共享庫有關。我正在構建一個在一臺Ubuntu機器上使用cmake的項目,但在另一臺Ubuntu機器上運行該應用程序。在所有情況下運行時是否需要存在.so庫
在的CMakeLists.txt文件,我有以下行:
project (clientapp)
add_executable(${PROJECT_NAME} ${SOURCES} ${WAKAAMA_SOURCES} ${SHARED_SOURCES})
LINK_DIRECTORIES(/home/user//mraa-master-built/build/src)
target_link_libraries (clientapp libmraa.so)
target_link_libraries(clientapp m)
這些線路增加兩個庫libmraa.so和數學庫的可執行文件,它的另一臺機器上成功運行。
我對共享庫的理解是,它們必須在編譯時和應用程序啓動時出現。但是在另一臺機器上沒有libmraa.so文件,應用程序運行正常。我預計它不會工作。
我的假設是否正確?
請問您的程序撥打電話在那個例程中,你試過的用法是?我想知道,如果他們只在訪問時才需要,而不是在應用程序啓動時。 – Scooter
也可能是您的程序實際上並不需要該庫,儘管它存在於構建文件中。 – Scooter
@Scooter對不起,但圖書館實際上是在機器上(我沒有安裝它的庫)。對不起,因爲一個愚蠢的問題而浪費你的時間。但是,應用程序如何知道在機器上的哪個位置找到共享庫,因爲我沒有指定路徑? –