« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
|
[C/C++]GCC静态链接与动态链接(续) |
冥思者 发表于 2006/3/5 11:29:18 |
有网友问到了如果程序里面同时用到了静态链接库和动态链接库,那该怎么办呢?其实很简单,还是以上贴的程序为例子,我们已经得到了静态库libhellos.a和动态库hellod.dll,我们现在修改一下主程序同时调用它们,如下/* main.c */#include <stdio.h>#include "hellos.h"#include "hellod.h"main() { char* text = "Hello World!\n"; printS(text); printD(text);}编译链接:gcc -o hello main.c hellod.dll libhellos.a然后运行helloprint in static way: Hello World!print in dynamic way: Hello World!此时删掉libhellos.a,仍然能正常运行。如果删掉hellod.dll则会报找不到hellod.dll的错误。细心的读者可能注意到了,这次编译的命令和前面有点不一样,这是因为gcc自己会判断是动态库还是静态库,然后自动采取了相应的编译策略。 | |
|
|
|
统计 |
blog名称:长夜慢慢兮,心越来越远! 日志总数:13 评论数量:48 留言数量:1 访问次数:154176 建立时间:2006年3月3日 | |