ld
是 Linux 下的鏈接器,它負責將編譯后的目標文件(.o 或 .obj)鏈接成可執行文件(.exe)或共享庫(.so)
使用靜態庫的命令格式如下:
ld -o output_file input_file(s) -lstatic_library_name -lyour_static_library_name
例如,將 libexample.a
靜態庫鏈接到名為 my_program
的可執行文件中:
ld -o my_program my_program.o -lexample -lexample
使用動態庫的命令格式如下:
ld -o output_file input_file(s) -ldynamic_library_name -lyour_dynamic_library_name
例如,將 libexample.so
動態庫鏈接到名為 my_program
的可執行文件中:
ld -o my_program my_program.o -lexample -lexample
需要注意的是,為了使用動態庫,程序在編譯時需要指定 -fPIC
(Position Independent Code)選項,以便生成位置無關的代碼。此外,動態庫通常需要放在一個特定的目錄中,以便鏈接器能夠找到它。在運行時,可以通過 LD_LIBRARY_PATH
環境變量來指定動態庫的搜索路徑。