• 8862阅读
  • 2回复

QT 调用VC写的库文件 出现undefined reference to `_imp___ZN6CEPI2AC1Ev'错误 [复制链接]

上一主题 下一主题
离线aisq2008
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-01
关键词: QT4调用libDLL

       我用QT调用VC写的lib和LL库文件编译出现 undefined reference to `_imp___ZN6CEPI2AC1Ev'的错误,这里的CEPI2是动态库文件里面构造函数名字。出现了这样的问题要怎么解决呢?
     我在QT里面用的GCC的编译器,环境是QT Creator,.pro文件只配置了这两项:
                      INCLUDEPATH += ../../include
                      LIBS += -L../../lib -l interface


        我现在在QT Creator2.4的项目设置中使用VC2008编译器编译上面的项目, 出现 LNK1146: 没有用选项 /LIBPATH: 指定的参数
       这个问题要怎么解决呢?

      如果在QT Creator用VC编译器,又该怎样添加库文件呢?


       现在问题视乎解决了:1.我在QT Creator2.4 中使用VC2008的编译器
                                           2.在.pro文件中不要用引入LIBS加入静态库
                                           3.在.cpp文件中使用下面语句加入静态库
#pragma comment(lib,"D:/Qt_Program/MyTest/EpiCommunicationTest/EPI/EPI2A.lib")
                                                        4.编译顺利通过也能成功运行。
     上面只是应该是其中的一个解决方法,相信还有其他跟好的方法,请各位大鸟多多指点!





离线dbzhang800

只看该作者 1楼 发表于: 2012-04-01
首先,C++没有ABI,不同厂商的编译器、同一编译器的不同版本,甚至同一版本编译器不同的编译选项,编译出来的东西无法通用。

如果你这儿的库不受你控制,可能你只能用和它一样的编译器来编译你的Qt了

http://blog.csdn.net/dbzhang800/article/details/6707051
离线aisq2008

只看该作者 2楼 发表于: 2012-04-01
回 1楼(dbzhang800) 的帖子
   你说的是对的。Qtcreator2.4.1提供了在项目配置里面设置编译器为VC2008和VC2010编译器编译工程的选项,但是我在这样设置之后却出现了:LNK1146: 没有用选项 /LIBPATH: 指定的参数。这样的错误,不知道这个错误怎么在QTCreator里面设置解决?
快速回复
限100 字节
 
上一个 下一个