- gcc静态连接的一些坑
假如有两个静态库liblua.a和libluaexport.a。其中libluaexport.a依赖于liblua.a。链接时,必须按顺序写成 -lluaexport -llua而不能写成 -llua -lluaexport。原因是,gcc在链接静态库时,第一种写法下,gcc在libluaexport.a中查找到未知的符号,然后在liblua.a中查找到定义,进行正常链接。而在第二种写法下,gcc在liblua.a中未查找到未知符号,然后在libluaexport.a中查找到未定义符号,此时,连接器并不会返回去查找liblua.a,故链接报错 - 一些连接符号
-i: 指定头文件的路径
-L: 指定lib库的路径
-l: 链接lib库
网友评论