链接动态库时我感到困惑。虽然我使用-L$(DIR) -l$(LIB)
来指定库及其目录,ldd
总是告诉我.so
来自LD_LIBRARY_PATH
。
所以,我想知道-l$(LIB)
的唯一影响是帮助编译器检查函数声明是否匹配?
答案 0 :(得分:1)
所以,我想知道
-l$(LIB)
的唯一影响是帮助编译器检查函数声明是否匹配?
或多或少是的,这就是目的。
即使链接到在运行时动态加载的库,链接器也需要解析那些中定义的函数。
在这种情况下,将创建存根库以解析函数调用。这是使用-l
选项提供的。