
你好,我现在用qt中要使用了一个vs2010编译的.lib静态库。
你好,我现在用qt中要使用了一个vs2010编译的.lib静态库。编译环境是mingw。我是按照LIBS+=D:/Test/mylib.lib这种方式添加的。可是编译通过...
你好,我现在用qt中要使用了一个vs2010编译的.lib静态库。编译环境是mingw。我是按照LIBS += D:/Test/mylib.lib这种方式添加的。可是编译通过不了。提示:error: undefined reference to `test(wchar_t*, wchar_t*, int)'。我想请教一下,我引入静态库的方式对不对?mingw是可以直接使用vs编译的静态库的么?
展开
1个回答
展开全部
对于C语言而言,用于连接dll的连接lib是可以通用的,dll也是可以通用的。但是静态库目前而言并不是通用的,一般的处理方式是编译成dll,然后生成连接lib(a)库,引入项目,或者使用libtdl动态加载dll文件。
静态库不可通用的原因是,基础库相差太多,objdump甚至都无法识别使用vc默认选项编译出啦的obj文件格式。另外reimp不是用于这个用途的,是为dll的连接lib(a)文件提供转换的。
对于C++而言,所有二进制代码都是不可通用的,毕竟名称修饰都相差甚远。
静态库不可通用的原因是,基础库相差太多,objdump甚至都无法识别使用vc默认选项编译出啦的obj文件格式。另外reimp不是用于这个用途的,是为dll的连接lib(a)文件提供转换的。
对于C++而言,所有二进制代码都是不可通用的,毕竟名称修饰都相差甚远。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询