• 13460阅读
  • 6回复

qt creator中,是不是只能够使用mingw编译的库? [复制链接]

上一主题 下一主题
离线bdbox
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-22
qt creator中,想调用其它使用vs编写的库,但是老出问题。请问是不是只能够使用mingw编译的库?
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-22
不是
离线bdbox

只看该作者 2楼 发表于: 2009-10-22
引用第1楼dbzhang800于2009-10-22 08:23发表的  :
不是



我在调用时出现以下错误:

D:/My Documents/QTProject/HelloWorld/main.cpp:12: undefined reference to `_imp___ZN9osgViewer6ViewerC1Ev'
D:/My Documents/QTProject/HelloWorld/main.cpp:13: undefined reference to `osgViewer::Viewer::setSceneData(osg::Node*)'
D:/My Documents/QTProject/HelloWorld/main.cpp:14: undefined reference to `osgViewer::Viewer::realize()'
...


大致代码如下:

pro文件:
TARGET = HelloWorld
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\include
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgd.lib
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgDBd.lib
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgUtild.lib
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgGAd.lib
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgViewerd.lib
LIBS += D:\OpenSceneGraph\Projects\osg\OpenSceneGraph\lib\osgTextd.lib


源代码如下:

#include <osgDB/ReadFile>
#include <osgViewer/Viewer>

...

    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
    viewer.realize();
    viewer.run();
离线sunjs
只看该作者 3楼 发表于: 2010-12-04
这位老兄不知 您解决此问题没有啊?  我也遇到该问题,配置了半天,DLL还是不起作用啊
离线dbzhang800

只看该作者 4楼 发表于: 2010-12-04
引用第2楼bdbox于2009-10-22 08:32发表的  :
我在调用时出现以下错误:
.......

1. 如果你调用VS编译的C接口的库,应该没问题。但你这儿是C++的接口的库,不同的编译器间就不能混用了

2. 要么用MinGW 编译你的库,要么用VS编译你的Qt
离线deepstar
只看该作者 5楼 发表于: 2010-12-04
引用第4楼dbzhang800于2010-12-04 08:38发表的  :
1. 如果你调用VS编译的C接口的库,应该没问题。但你这儿是C++的接口的库,不同的编译器间就不能混用了
2. 要么用MinGW 编译你的库,要么用VS编译你的Qt

正解啊
因会爬网而为自己骄傲
离线loaden
只看该作者 6楼 发表于: 2010-12-04
如果一定要用VC编译的库,建议用VC7.1及以下版本。
因为VC8后,可恶的MS就不再公开库的格式,也就导致MinGW无法兼容了。
快速回复
限100 字节
 
上一个 下一个