IDL& Qt中没有生成TLB文件 [英] IDL & TLB files are not getting generated in Qt

查看:185
本文介绍了IDL& Qt中没有生成TLB文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在用Qt 5.2.1开发一个应用程序。

应用程序输出dll。

如果我编译我的应用程序单独它正在编译没有任何错误并成功生成.dll,.tlb和.idl文件。

但是如果我从其他项目链接任何静态库,我的应用程序发出编译错误(错误:[ release\QtSTLViewerAddIn1.dll]错误3(忽略))。

和我的.idl文件没有生成。

有没有解决此问题?



这是我的编译输出:



09:51:04:项目的运行步骤QtSTLViewerAddIn ...

09:51:04:开始:C:\ Qt \ Qt5.2.1 \Tools\mingw48_32\bin\mingw32-make.exe干净

C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile。请清理

mingw32-make [1]:输入目录'E:/ Projects / QT / Milestone-1 / Package'

del release\moc_QtSTLViewerAddIn.cpp

del release \\ QtSTLViewerAddIn.o release \ _moc_QtSTLViewerAddIn.o

del release / QtSTLViewerAddIn.idl release / QtSTLViewerAddIn.tlb release \libQtSTLViewerAddIn1.a

参数格式不正确 - QtSTLViewerAddIn .idl。

Makefile.Release:96:目标'干净'的配方失败

mingw32-make [1]:[clean]错误1(忽略)

del release \ QtSTLViewerAddIn_res.o

mingw32-make [1]:离开目录'E:/ Projects / QT / Milestone-1 / Package'

C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug clean

mingw32-make [1]:输入目录'E:/ Projects / QT / Milestone-1 / Package'

del debug \ _moc_QtSTLViewerAddIn.cpp

找不到E:\Projects\QT \ Milestone-1 \ Package \\ \\ _debug \ _moc_QtSTLViewerAddIn.cpp

del debug \QtSTLViewerAddIn.o debug \moc_QtSTLViewerAddIn.o

找不到E:\Projects \ QT \里程碑-1\Package \\ _debug \ QtSTLViewerAddIn.o

del debug / QtSTLViewerAddIn.idl debug / QtSTLViewerAddIn.tlb debug \libQtSTLViewerAddIn1.a

参数格式不正确 - QtSTLViewerAddIn.idl 。

Makefile.Debug:96:目标'干净'的配方失败

mingw32-make [1]:[clean]错误1(忽略)

德尔debug\QtSTLViewerAddIn_res.o

找不到E:\Projects\QT\Milestone-1\Package\debug\QtSTLViewerAddIn_res.o

mingw32-make [1]:离开目录'E:/ Projects / QT / Milestone-1 / Package'

del \ QtSTLViewerAddIn.idl

不能查找E:\QtSTLViewerAddIn.idl

德尔\QtSTLViewerAddIn.tlb

找不到E:\QtSTLViewerAddIn.tlb

德尔libQtSTLViewerAddIn1 .a

无法找到E:\Projects\QT \ Milestone-1 \Package \libQtSTLViewerAddIn1.a

09:51:05:流程C:\Qt\Qt5.2.1\Tools\mingw 48_32\bin\mingw32-make.exe正常退出。

09:51:05:配置不变,跳过qmake步骤。

09:51:05:开始:C:\ Qt \ Qt5.2.1 \Tools \mingw48_32\bin\mingw32-make.exe

C:/Qt/Qt5.2.1/Tools/mingw48_32 / bin / mingw32-make -f Makefile.Release

mingw32-make [1]:输入目录'E:/ Projects / QT / Milestone-1 / Package'

g ++ -c -pipe -fno-keep-inline-dllexport -O2 -w -frtti -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\QtSTLViewerAddIn -Idebug-IC:\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32 \ include-IC:\ Qt \ Qt5.2.1 \5.2.1 \ mingw48_32\include\QtOpenGL-IC:\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32\include\ActiveQt-IC:\ Qt \ Qt5.2.1 \\ \\ 5.2.1\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32\include\QtGui-IC:\ Qt \ Qt5.2.1 \5.2.1 \\\\\\\\\\\\\\\ QtCore-I发布-I。 -I C:\Qt\Qt5.2.1\5.2.1\mingw48_32\mkspecs\win32-G ++ -o release\QtSTLViewerAddIn.o ..\QtSTLViewerAddIn\QtSTLViewerAddIn.cpp <无线电通信/>
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\moc.exe -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -I..\QtSTLViewerAddIn -Idebug-IC:\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32 \ include-IC:\ Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtOpenGL-IC:\ Qt \ Qt5.2.1 \5.2.1 \ somew48_32\include\ActiveQt - 我是C:\ Qt \ Qt5.2.1 \5.2.1 \ somew48_32 \include\QtWidgets-IC:\ Qt \ Qt5.2.1 \5.2.1 \\\\\\\\\\\\ include \QtGui-IC:\ Qt \ Qt5.2.1 \5.2.1 \ somew48_32 \include\QtCore-I发布-I。 -IC:\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32\mkspecs\win32-g ++.. \\\ QtSTLViewerAddIn\QtSTLViewerAddIn.h -o release\moc_QtSTLViewerAddIn.cpp

g ++ -c -pipe -fno-keep-inline-dllexport -O2 -w -frtti -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB- I..\QtSTLViewerAddIn -Idebug-IC:\ Qt \ Qt5.2.1 \5.2.1 \\\ ingw48_32 \ include-IC:\ Qt \ Qt5.2.1 \\ \\ 5.2.1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ Qt5.2.1 \5.2.1 \ somew48_32\include\QtWidgets-IC:\ Qt \ Qt5.2.1 \5.2.1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ C:\ Qt \ Qt5.2.1 \5.2.1 \ somew48_32\include\QCore-Irelease-I。 -I C:\Qt\Qt5.2.1\5.2.1\mingw48_32\mkspecs\win32-G ++ -o release\moc_QtSTLViewerAddIn.o release\moc_QtSTLViewerAddIn.cpp

windres -i .. \ QtSTLViewerAddIn\QtSTLViewerAddIn.rc -o release \QtSTLViewerAddIn_res.o --include-dir =。/ .. / QtSTLViewerAddIn -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB - DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB

g ++ -Wl,-s -shared -mthreads -Wl, - out-implib,release \libQtSTLViewerAddIn1.a -Wl,.. \ QtSTLViewerAddIn \ QtSTLViewerAddIn。 def -o release\QtSTLViewerAddIn1.dll release / QtSTLViewerAddIn.o release / moc_QtSTLViewerAddIn.o -LE:/ Projects / QT / Milestone-1 / QtSTLViewerAddIn /../ Package / debug / -lDisplayControl -LC:\ Qt \ Qt5.2.1\5.2.1\mingw48_32\lib -lQt5AxServer -LC:\mingw48\mingw32\lib -LC:\Utils\icu32_51_1_mingw48\lib -LC:\utils\postgresql\\ \\pgsql\lib -LC:\utils\mysql \mysql \lib -LC:\ openns \ lib -LC:\ Qt \ Qt5.2.1 \5.2.1 \mingw48_32 / lib -lQt5AxContainer -lQt5OpenGL - lQt5AxBase -lglu32 -lopengl32 -lole32 -loleaut32 -luser32 -lgdi32 -ladvapi32 -luuid -lQt5Widgets -lQt5Gui -lQt5Core release\QtSTLViewerAddIn_res.o

警告:通过链接到_DllCanUnloadNow @ 0来解析_DllCanUnloadNow
使用--enable-stdcall-fixup禁用这些警告

使用--disable-stdcall-fixup禁用这些修正

警告:解析_DllGetClassObject by链接到_DllGetClassObject @ 12

警告:通过链接到_DllRegisterServer来解析_DllRegisterServer @ 0

警告:通过链接到_DllUnregisterServer解析_DllUnregisterServer @ 0

警告:通过链接到_DumpIDL解析_DumpIDL @ 8

C:\ Qt \ Qt5.2.1 \5.2.1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ idl release / QtSTLViewerAddIn.idl -ver sion 1.0





release\QtSTLViewerAddIn.idl



Couldn' t加载库文件release \ QtSTLViewerAddIn1.dll

类没有元对象信息(release \QtSTLViewerAddIn1.dll中的错误)!

Makefile.Release:78:recipe for目标'release\QtSTLViewerAddIn1.dll'失败

mingw32-make [1]:[release\QtSTLViewerAddIn1.dll]错误3(忽略)

midl release / QtSTLViewerAddIn .idl / nologo / tlb release / QtSTLViewerAddIn.tlb

Makefile.Release:78:目标'release\QtSTLViewerAddIn1.dll'的配方失败

process_begin:CreateProcess(NULL ,midl release / QtSTLViewerAddIn.idl / nologo / tlb release / QtSTLViewerAddIn.tlb,...)失败。

make(e = 2):系统找不到指定的文件。



mingw32-make [1]:[release\QtSTLViewerAddIn1.dll]错误2(忽略)

C:\ Qt \ Qt5.2.1 \5.2.1\mingw48_32\bin\id c.exe release\QtSTLViewerAddIn1.dll / tlb release / QtSTLViewerAddIn.tlb

无法打开release \ QtSTLViewerAddIn.tlb进行阅读

Makefile.Release:78:目标'release\QtSTLViewerAddIn1.dll'的配方失败

mingw32-make [1]:[release\QtSTLViewerAddIn1.dll]错误4(忽略)

C: \ Qt \ Qt5.2.1 \5.2.1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ .dll

无法注册服务器!

Makefile.Release:78:目标'release\QtSTLViewerAddIn1.dll'的配方失败

mingw32 -make [1]:[release\QtSTLViewerAddIn1.dll]错误1(忽略)

mingw32-make [1]:离开目录'E:/ Projects / QT / Milestone-1 / Package'

09:51:10:进程C:\ Qt \ Qt5.2.1 \Tools\mingw48_32\bin\mingw32-make.exe正常退出。

09:51:10:经过时间:00:05。

Hi,
I am developing an application in Qt 5.2.1.
The application outputs dll.
If I compile my application alone it is compiling without any errors and generating .dll, .tlb and .idl files successfully.
But if I link any static libs from other projects, my application is giving a compile error (error: [release\QtSTLViewerAddIn1.dll] Error 3 (ignored)).
and my .idl file is not getting generated.
Is there any fix for this ?

here is my compile output :

09:51:04: Running steps for project QtSTLViewerAddIn...
09:51:04: Starting: "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" clean
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory 'E:/Projects/QT/Milestone-1/Package'
del release\moc_QtSTLViewerAddIn.cpp
del release\QtSTLViewerAddIn.o release\moc_QtSTLViewerAddIn.o
del release/QtSTLViewerAddIn.idl release/QtSTLViewerAddIn.tlb release\libQtSTLViewerAddIn1.a
Parameter format not correct - "QtSTLViewerAddIn.idl".
Makefile.Release:96: recipe for target 'clean' failed
mingw32-make[1]: [clean] Error 1 (ignored)
del release\QtSTLViewerAddIn_res.o
mingw32-make[1]: Leaving directory 'E:/Projects/QT/Milestone-1/Package'
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug clean
mingw32-make[1]: Entering directory 'E:/Projects/QT/Milestone-1/Package'
del debug\moc_QtSTLViewerAddIn.cpp
Could Not Find E:\Projects\QT\Milestone-1\Package\debug\moc_QtSTLViewerAddIn.cpp
del debug\QtSTLViewerAddIn.o debug\moc_QtSTLViewerAddIn.o
Could Not Find E:\Projects\QT\Milestone-1\Package\debug\QtSTLViewerAddIn.o
del debug/QtSTLViewerAddIn.idl debug/QtSTLViewerAddIn.tlb debug\libQtSTLViewerAddIn1.a
Parameter format not correct - "QtSTLViewerAddIn.idl".
Makefile.Debug:96: recipe for target 'clean' failed
mingw32-make[1]: [clean] Error 1 (ignored)
del debug\QtSTLViewerAddIn_res.o
Could Not Find E:\Projects\QT\Milestone-1\Package\debug\QtSTLViewerAddIn_res.o
mingw32-make[1]: Leaving directory 'E:/Projects/QT/Milestone-1/Package'
del \QtSTLViewerAddIn.idl
Could Not Find E:\QtSTLViewerAddIn.idl
del \QtSTLViewerAddIn.tlb
Could Not Find E:\QtSTLViewerAddIn.tlb
del libQtSTLViewerAddIn1.a
Could Not Find E:\Projects\QT\Milestone-1\Package\libQtSTLViewerAddIn1.a
09:51:05: The process "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" exited normally.
09:51:05: Configuration unchanged, skipping qmake step.
09:51:05: Starting: "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe"
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'E:/Projects/QT/Milestone-1/Package'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -w -frtti -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\QtSTLViewerAddIn -I"debug" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtOpenGL" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\ActiveQt" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtWidgets" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtGui" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtCore" -I"release" -I"." -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\mkspecs\win32-g++" -o release\QtSTLViewerAddIn.o ..\QtSTLViewerAddIn\QtSTLViewerAddIn.cpp
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\moc.exe -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -I..\QtSTLViewerAddIn -I"debug" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtOpenGL" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\ActiveQt" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtWidgets" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtGui" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtCore" -I"release" -I"." -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\mkspecs\win32-g++" ..\QtSTLViewerAddIn\QtSTLViewerAddIn.h -o release\moc_QtSTLViewerAddIn.cpp
g++ -c -pipe -fno-keep-inline-dllexport -O2 -w -frtti -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\QtSTLViewerAddIn -I"debug" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtOpenGL" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\ActiveQt" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtWidgets" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtGui" -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtCore" -I"release" -I"." -I"C:\Qt\Qt5.2.1\5.2.1\mingw48_32\mkspecs\win32-g++" -o release\moc_QtSTLViewerAddIn.o release\moc_QtSTLViewerAddIn.cpp
windres -i ..\QtSTLViewerAddIn\QtSTLViewerAddIn.rc -o release\QtSTLViewerAddIn_res.o --include-dir=./../QtSTLViewerAddIn -DUNICODE -DQT_NO_DEBUG -DQT_AXSERVER_LIB -DQAXSERVER -DQT_AXCONTAINER_LIB -DQT_OPENGL_LIB -DQT_AXBASE_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
g++ -Wl,-s -shared -mthreads -Wl,--out-implib,release\libQtSTLViewerAddIn1.a -Wl,..\QtSTLViewerAddIn\QtSTLViewerAddIn.def -o release\QtSTLViewerAddIn1.dll release/QtSTLViewerAddIn.o release/moc_QtSTLViewerAddIn.o -LE:/Projects/QT/Milestone-1/QtSTLViewerAddIn/../Package/debug/ -lDisplayControl -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib -lQt5AxServer -LC:\mingw48\mingw32\lib -LC:\Utils\icu32_51_1_mingw48\lib -LC:\utils\postgresql\pgsql\lib -LC:\utils\mysql\mysql\lib -LC:\opensll\lib -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32/lib -lQt5AxContainer -lQt5OpenGL -lQt5AxBase -lglu32 -lopengl32 -lole32 -loleaut32 -luser32 -lgdi32 -ladvapi32 -luuid -lQt5Widgets -lQt5Gui -lQt5Core release\QtSTLViewerAddIn_res.o
Warning: resolving _DllCanUnloadNow by linking to _DllCanUnloadNow@0
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Warning: resolving _DllGetClassObject by linking to _DllGetClassObject@12
Warning: resolving _DllRegisterServer by linking to _DllRegisterServer@0
Warning: resolving _DllUnregisterServer by linking to _DllUnregisterServer@0
Warning: resolving _DumpIDL by linking to _DumpIDL@8
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\idc.exe release\QtSTLViewerAddIn1.dll /idl release/QtSTLViewerAddIn.idl -version 1.0


release\QtSTLViewerAddIn.idl

Couldn't load library file release\QtSTLViewerAddIn1.dll
Class has no metaobject information (error in release\QtSTLViewerAddIn1.dll)!
Makefile.Release:78: recipe for target 'release\QtSTLViewerAddIn1.dll' failed
mingw32-make[1]: [release\QtSTLViewerAddIn1.dll] Error 3 (ignored)
midl release/QtSTLViewerAddIn.idl /nologo /tlb release/QtSTLViewerAddIn.tlb
Makefile.Release:78: recipe for target 'release\QtSTLViewerAddIn1.dll' failed
process_begin: CreateProcess(NULL, midl release/QtSTLViewerAddIn.idl /nologo /tlb release/QtSTLViewerAddIn.tlb, ...) failed.
make (e=2): The system cannot find the file specified.

mingw32-make[1]: [release\QtSTLViewerAddIn1.dll] Error 2 (ignored)
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\idc.exe release\QtSTLViewerAddIn1.dll /tlb release/QtSTLViewerAddIn.tlb
Couldn't open release\QtSTLViewerAddIn.tlb for read
Makefile.Release:78: recipe for target 'release\QtSTLViewerAddIn1.dll' failed
mingw32-make[1]: [release\QtSTLViewerAddIn1.dll] Error 4 (ignored)
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\idc.exe release\QtSTLViewerAddIn1.dll /regserver
Couldn't load library file release\QtSTLViewerAddIn1.dll
Failed to register server!
Makefile.Release:78: recipe for target 'release\QtSTLViewerAddIn1.dll' failed
mingw32-make[1]: [release\QtSTLViewerAddIn1.dll] Error 1 (ignored)
mingw32-make[1]: Leaving directory 'E:/Projects/QT/Milestone-1/Package'
09:51:10: The process "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" exited normally.
09:51:10: Elapsed time: 00:05.

推荐答案

这篇关于IDL&amp; Qt中没有生成TLB文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆