}//将产生警告信息gcc main.c -o qq -pedantic -static:默认情况下,gcc 在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库。 如果需要的话,可以在编译时加上-static选项,强制使用静态链接库。 -shared:创建后缀名为.so的共享对象文件的时候使用 -save-temps:保存编译过程中生成的一些列...
-static此选项将禁止使用动态库,编译得到的程序会比较大,但可以自由运行。 -share此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库。 上面的是一些常用的参数以及对应的选项,如有更细致的需求,可以参考man page。 附加:使用GCC生成静态链接库或动态链接库 首先需要目标文件(*.o),用gcc/g++ -c生成...
static int localvar = foo(); return localvar; } [tsecer@Harry localstatic]$ gcc localstatic.c -c localstatic.c:2: error: initializer element is not constant localstatic.c: In function ‘bar’: localstatic.c:5: error: initializer element is not constant [tsecer@Harry localstatic]$ g++ ...
这种方式也可以用来强制链接动态库或静态库 5.gcc常用链接选项参数 5.1 gcc默认链接(编译时)行为是在同一目录下,先找so,再找.a 若要更改默认行为,需使用额外选项,分三种情况: 强制静态库链接 使用-Wl,-Bstatic -lxxx,此时若找不到libxxx.a静态库文件,则报错 强制动态库链接 使用-Wl,-Bdynamic -lxxx,此时若...
-static:使用静态链接。 --help:显示帮助信息。 --version:显示编译器版本信息。 示例 阶段编译 假设有文件 hello.c,内容如下: #include <stdio.h> int main(void) { printf("Hello, GetIoT\n"); return 0; } 编译hello.c,默认输出 a.out ...
-static :使用静态链接。 --help :显示帮助信息。 --version :显示编译器版本信息。 示例 阶段编译 假设有文件 hello.c,内容如下: #include <stdio.h> intmain(void) { printf("Hello, GetIoT\n"); ...
GCC 参数的使用 GCC参数的使用 gcc 主要有三个参数-E -S -c -o -l 以及不加参数 四个阶段:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。 -o 生成文件 如果有-E 就是生成预编译文件 如果是-S 就是生成汇编文件...
静态库(Static Library) 类似于你个人的书包,你从图书馆中选择了一些书籍,把它们拷贝到你的书包里。这些书籍是你个人拥有的,可以在需要的时候直接使用。当你需要使用这些书籍时,你只需从书包中取出,不需要依赖图书馆,也不会影响其他学生。 在编程中,静态库是在编译时将库的代码和程序代码链接在一起,形成一个单独...
如果在你使用的 gcc 命令中,命令行选项列表变得很大而且很难管理,那么你可以把它放在一个文本文件中,然后把文件名作为 gcc 命令的一个参数。之后,你必须使用@file 命令行选项。比如,下面这行是你的 gcc 命令:gcc -Wall -Wextra -Wfloat-equal test.c -o test 然后你可以把这三个和警告相关的选项放到一...
默认情况下,gcc 在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库。 如果需要的话,可以在编译时加上 -static 选项,强制使用静态链接库。 (5) -shared 生成一个共享的目标文件,它能够与其他的目标一起链接生成一个可执行的文件。