GCC的-I,-L,-l的参数各是什么意思,有什么作用,什么时候使用,今天一块来谈谈这个吧。
-l就是指定库名,库名又是个什么东西呢?和文件名又有什么关系呢?比如库文件名是libXXX.so,那么它的库名就是XXX
-L就是指定库所在的目录,如果没有指定,系统会去/lib /usr/lib /usr/local/lib下面去找,这就是为什么我们平时不用加这个参数的原因,标准库的东西都在这里
-I参数其实就是头文件所在的目录,例如MySQL的头文件在/usr/include/mysql把这个路径指定了,编译器就知道要去这个目录下面找mysql.h这个头文件了。
看个例子就明白了
gcc test.c -I/usr/include/mysql -L/usr/lib/mysql –lmysqlclient
#incldue <stdio.h>
#include <stdlib.h>
#include <mysql>
int main()
{
MYSQL connection;
mysql_init(&connection);
return 0;
}
就这么用,如果没有这些参数的话少加了某个的话系统就会提示什么mysql.h找不到,MYSQL未定义,mysql_init未定义等等错误。