当前位置:首页 » 编程软件 » 动态库可以重新编译成静态库

动态库可以重新编译成静态库

发布时间: 2025-03-29 12:27:18

㈠ Qt Creator 怎样设置才能实现静态编译

Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:

1.将C:\Qt\2010.05\qt\mkspecs\win32-g++文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

改为

QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-

auto-import -Wl,-enable-runtime-pseudo-reloc

2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"

-L指定一下路径,防止用到vc的头文件

选择开源:O;选择license:y;

3.上一条命令运行成功后再输入命令: mingw32-make sub-src

等1 ~3 小时可能就运行完了 完成后就ok了。。。

㈡ 如何编译C/Fortran动态/静态链接库

首先,传统的编译,也就是
静态编译
是把
源文件
翻译成目标文件,这个是一次性过程,也就是你所谓的静态编译。
后来的Java和.NET等语言,首先编译成中间形式,然后运行过程中根据需要编译成本地代码(注意这个过程不是一次性的,下次运行重新编译),这个就是JIT(即时编译)技术,从即时编译发展出了动态编译技术
————————————
(传统的)编译完成后,像C/C++、Fortran、汇编等语言,可以把多个目标文件合并到一个
库文件
中,这个就是静态库。比如常说的
库函数
printf就是libc里面的函数。
如果有了启动函数(main),main里面使用了printf,就可以通过
静态链接
技术,从libc中提取出printf所在的文件加入到可执行文件中,如果printf还需要其它函数,就继续搜索并加入列表,直到形成一个
闭包
。这个就是静态链接。
可是静态链接有个明显的缺点,如果每个程序都需要printf,那么printf这个函数的代码就会同时存在在每个程序中,这样也太占地方了吧。所以发明了动态连接技术,其实有两种形式。无论哪一种,都是首先记录下需要调用printf这个函数以及所在的
动态库
,等到运行的时候再加载动态库,从动态库中找到真正的printf去执行。
由于,
动态链接
技术需要一些额外的信息,传统的静态库是不具备的,这些额外信息主要是重复加载和卸载时所需要的一些代码,因此需要
动态链接库

热点内容
androidlistview选中项 发布:2025-04-30 13:21:19 浏览:99
置换算法代码 发布:2025-04-30 13:11:03 浏览:864
怎么清除小米锁屏密码 发布:2025-04-30 13:01:23 浏览:77
php装修门户系统 发布:2025-04-30 13:01:19 浏览:260
配置管理包含哪些审核 发布:2025-04-30 12:57:33 浏览:62
3dnand存储器 发布:2025-04-30 12:56:58 浏览:130
宝可梦怎么配置单打队伍 发布:2025-04-30 12:49:11 浏览:98
android刷广告 发布:2025-04-30 12:45:40 浏览:229
wpf编程指南 发布:2025-04-30 12:44:00 浏览:160
php中跳转 发布:2025-04-30 12:42:49 浏览:456