社区
C语言
帖子详情
gcc g++ 怎样调用vc的 .lib库文件
bruninfo
2002-09-04 09:27:14
gcc g++ 的库文件是以.a形式提供的.vc的库文件是以.lib形式提供的。
现想在gcc g++ 中调用.vc的库文件,有什么方法。
...全文
1643
10
打赏
收藏
gcc g++ 怎样调用vc的 .lib库文件
gcc g++ 的库文件是以.a形式提供的.vc的库文件是以.lib形式提供的。 现想在gcc g++ 中调用.vc的库文件,有什么方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bruninfo
2002-09-05
打赏
举报
回复
谢谢大家
Plotto
2002-09-04
打赏
举报
回复
My god!
bruninfo
2002-09-04
打赏
举报
回复
stidio_zhougang(回头是岸) :
按照你的说法,这样理解可以吗?
1.gcc的.a文件的格式和vc的.lib文件的格式是一样的。
2.联接时如果将库目录指向vc的lib目录,并用-l选项,也能通过。
我过会儿做个试验。
另:由于这段时间正做这方面的工作,gcc方面的问题可能很多,还望多帮助 。
stidio_zhougang
2002-09-04
打赏
举报
回复
首先将你的test.lib(假如是这个名字),然后将它改为libtest.a,然后把它拷贝到MINGW下的lib目录下,或者放在你的源文件目录下,编译时,加上这个选项 -ltest 。明白了吗?
如果还有什么不明白的地方给我发email:stidio@163.com
stidio_zhougang
2002-09-04
打赏
举报
回复
哈哈,总算让我给搞出来了!
我又查了一些资料,但上面都没有讲这个问题,我想Microsoft提供给人家的API库都是以LIB形式存在的,因此不可能存在着源代码再编译,因此我想了一个变通的方法———
将MINGW下的lib/winapi/libuser32.a libkernel32.a libgdi32.a这三个文件删除,然后搜索VC 中的user32.lib kernel32.lib gid32.lib三个文件改成上面三个我删除的文件,编译了一个实现多线程图形显示的WIN32工程(《深入浅出MFC》中的第一章的一个例子),编译成功,运行成功,一切OK了,说到这里,我想你应该明白我的意思了吧?
stidio_zhougang
2002-09-04
打赏
举报
回复
你怎么老问这个问题,不是给你说了吗?
他支持WIN32 API,用LoadLibrary载入就可以了。
不过我想你的意思可能是说能不能象VC中一样在链接器中加入一个LIB,我从来没有这样在GCC中做过。
bruninfo
2002-09-04
打赏
举报
回复
我是用win + mingw
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
blh
2002-09-04
打赏
举报
回复
我不知道你用的是什么系统平台,但从你的题目中好像是linux,既然你用linux干嘛要用vc的库,高校
stidio_zhougang
2002-09-04
打赏
举报
回复
TO:bruninfo(景得)
CSDN上所有以我为兄弟者,都是我的兄弟,No Problem!
coolgarfield
2002-09-04
打赏
举报
回复
关注!!!
MingW
VC
之.a .
lib
.dll .def 关系
MS
VC
vs. MinGW 之 (
lib
,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o
gcc
-c a.c c -> exe
gcc
a.c
lib
s.o -o a.exe (从主程序a.c,附加
lib
s,生成a.exe) o -> exe
gcc
a.o b.o ... -o main.exe c -> dll,def,a
gcc
a.c -shared -o a.dll -Wl,--output-def,a.def,--out-imp
lib
,
lib
a.a a -> dll a2dll
lib
a.a dll -> a: dlltool --dllname a.dll --def a.def --output-
lib
lib
a.a (需要def
文件
) a -> def: dumpbin /exports
lib
.a >
lib
.def (在windows上
调用
,def需要修改) dll -> def : pexports a.dll -o > a.def (这里的-o是指给函数标序号)
lib
-> def : reimp -d a.
lib
lib
-> a: (for __cdecl functions in most case) reimp a.
lib
; (for __stdcall functions) MS
VC
: c ->
lib
cl /LD a.c (注意已经定义了export列表) c -> dll cl /LD a.c c -> obj cl /c a.c c -> exe cl a.c /out:a.exe dll ->
lib
lib
/machine:ix86 /def:a.def /out:a.
lib
(需要def
文件
) obj ->
lib
lib
a.obj b.obj... /out:my
lib
.
lib
dll ->def DUMPBIN a.dll /EXPORTS /OUT:a.def (生成的def需要做修正)
lib
->def reimp -d a.
lib
(这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。 dll和exe都是PE
文件
,所以可以使用pexports.
lib
和a是静态
库
文件
,都是归档类型,不是PE格式。所以不能使用pexports. dll可以使用dlltool.
lib
可以使用
lib
, 和reimp(
lib
->a工具) 所有的bin
文件
,包括dll,exe,
lib
,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MS
VC
_and_MinGW_DLLs http://oldwiki.mingw.org/index.php/CreateImport
Lib
raries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.cpp #include #include #include "my
lib
.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. my
lib
.cpp #include #include #include "my
lib
.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. my
lib
.h #define EXPORT __declspec(
MinGW编译器连接器
MinGW,在windows下的GUN全套编译器, 其中
gcc
为3.4.5版本的,不用安装msys,DOS命令行直接编译, windows应用程序在连接时需要命令行结尾加上-mwindows参数;
vc
里的winmm.
lib
文件
在MinGW里为lwinmm.0,连接时在命令行尾部加上-lwinmm参数,添加环境变量只需要加上MinGW\bin目录的路径就行了;其中的Bug信息请参考MinGW官网
Linux编程之
GCC
编译工具实战
本课程使得学员能够学会在linux中如何编译C/C++程序,使用
GCC
工具如何编译静态
库
,动态
库
,如何配置运行动态
库
。
mingw 链接 .
lib
mingw 链接 .
lib
VC
生成的静态
库
文件
PCI8002.
lib
,用mingw-
g++
直接链接,竟然可以。
g++
-Wall main.cpp pci8002.
lib
1.
GCC
和
VC
都使用COFF格式,所以
VC
中的.obj .
lib
与
gcc
在WINDOWS下用的.o .a是一样的,只是扩展名不一样。 2. MinGW附带了转换工具reimp.exe,
CodeBlocks与C-Free使用
VC
的静态
库
CodeBlocks与C_Free在使用GNU
GCC
编译器时统一使用的是linux的格式即为.a格式,而
VC
使用的为.
lib
格式,找了这方面的相关资料在
gcc
g++
怎样
调用
vc
的 .
lib
库
文件
帖子里面有介绍,为了方便大家实际操作,故写下这篇文章 ^_^ 有兴趣的朋友可以参考。 1、 CodeBlocks 下使用
VC
的
lib
库
首先,我们需要建立一个工程,取名随意(
C语言
69,393
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章