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

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

发布时间: 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去执行。
由于,
动态链接
技术需要一些额外的信息,传统的静态库是不具备的,这些额外信息主要是重复加载和卸载时所需要的一些代码,因此需要
动态链接库

热点内容
java代码混淆工具 发布:2025-04-01 02:24:02 浏览:89
苹果电脑链接服务器 发布:2025-04-01 02:22:27 浏览:863
游戏云服务器好不好 发布:2025-04-01 02:21:47 浏览:734
android防止进程 发布:2025-04-01 02:15:02 浏览:708
如何查询股票账号密码 发布:2025-04-01 02:10:56 浏览:446
2019更改默认预编译头文件 发布:2025-04-01 02:09:15 浏览:17
木线雕刻机需要什么电脑配置 发布:2025-04-01 01:55:34 浏览:263
电子政务数据库 发布:2025-04-01 01:54:25 浏览:630
腾讯云服务器有没有独立ip 发布:2025-04-01 01:42:46 浏览:528
考算法吗 发布:2025-04-01 01:41:20 浏览:811