Seite 1 von 1

Problem beim linken unter VS Express 2005

Verfasst: 25. Januar 2008 09:40
von methusalem
Moin,

ist vermutlich leicht OT da es nicht direkt ein QT Problem ist, ich hoffe aber, das Ihr mir trotzdem helfen könnt & wollt.

Meine Umgebung: Win XP, QT 4.2.2, VisualStudio Express 2005 und eine Lib eines Bekannten (soweit ich weiß mit VS 6 übersetzt).

Ich habe ein minimal QT Programm bestehend aus:

main.cpp
hauptfenster.cpp
hauptfenster.h
hauptfenster.ui

meine pro Datei sieht so aus:

Code: Alles auswählen

TEMPLATE = app
TARGET = 
DEPENDPATH += . include src ui
INCLUDEPATH += . include

# Input
HEADERS += include/hauptfenster.h
FORMS += ui/hauptfenster.ui
SOURCES += src/hauptfenster.cpp src/main.cpp

win32:LIBS += D:/Dokumente/Develop/QT_COMPort/lib/vlib2.lib
die main.cpp:

Code: Alles auswählen

#include <QtGui/QtGui>
#include <hauptfenster.h>
#include <stdio.h>
#include <vconnect2.h>

int main(int argc, char *argv[])
{
	QApplication app(argc,argv);
	app.setQuitOnLastWindowClosed(true);
	app.setStyle("plastique");

	StdBase * base = new StdBase;
	base->show();
	
	// Hier kommt nun testweise die Sache mit VConnect
	VConnect * vCom;
	vCom = new VConnect();
	vCom->open("COM1","9600:8:N:1");
	
	return app.exec();
}
Wenn ich das Programm übersetze, ohne das ich VConnect nutze, klappt es prima.
Wenn ich das allerdings nutzen möchte, bekomme ich folgende Fehlermeldung beim linken:

Code: Alles auswählen

D:\Dokumente\Develop\QT_COMPort>nmake

Microsoft (R) Program Maintenance Utility, Version 8.00.50727.42
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    "C:\Programme\Microsoft Visual Studio 8\VC\BIN\nmake.exe" -f Makefile.Debug

Microsoft (R) Program Maintenance Utility, Version 8.00.50727.42
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

        cl -c -nologo -Zm200 -GS -Od -Zi -Gm -MDd -GR -EHsc -W3 -DUNICODE -DQT_L
ARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
-DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Programme/Qt/4.2.2
-os/include/QtCore" -I"C:/Programme/Qt/4.2.2-os/include/QtCore" -I"C:/Programme/
Qt/4.2.2-os/include/QtGui" -I"C:/Programme/Qt/4.2.2-os/include/QtGui" -I"C:/Prog
ramme/Qt/4.2.2-os/include" -I"." -I"include" -I"C:/Programme/Qt/4.2.2-os/include
/ActiveQt" -I"debug" -I"." -I"c:\Programme\Qt\4.2.2-os\mkspecs\win32-msvc2005" -
Fodebug\ @C:\DOKUME~1\Martin\LOKALE~1\Temp\nm7.tmp
main.cpp
        link /LIBPATH:"c:\Programme\Qt\4.2.2-os\lib" /NOLOGO /DEBUG /SUBSYSTEM:W
INDOWS /incremental:no /OUT:"debug\QT_COMPort.exe" @C:\DOKUME~1\Martin\LOKALE~1\
Temp\nm8.tmp
vlib2.lib(vconnect.obj) : warning LNK4075: /EDITANDCONTINUE wird aufgrund der An
gabe von /INCREMENTAL:NO ignoriert.
LINK : fatal error LNK1104: Datei "libcid.lib" kann nicht geöffnet werden.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\link.
EXE"": Rückgabe-Code "0x450"
Stop.
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\nmake
.exe"": Rückgabe-Code "0x2"
Stop.

D:\Dokumente\Develop\QT_COMPort>
Was hat VS nun mit libcid.lib am Hut? Kann mir jemand helfen? Ich stehe gerade auf dem Schlauch.

Verfasst: 25. Januar 2008 10:20
von macman
Visual Studio interessiert sich nicht für deine pro-Datei, die Angaben musst Du schon in Visual Studio machen.

Verfasst: 25. Januar 2008 11:02
von methusalem
sorry, ich hab mein Vorgehen nicht richtig beschrieben.

Ich arbeite nicht im VS sondern auf der Konsole aber mit dem VS Compiler. Sonst hätte ich ja auch nicht die von mir gepostete Fehlermeldung bekommen können.

ich habe also auf der "DOS"-Konsole mit VS Umgebung

Code: Alles auswählen

qmake (aus pro-File wird Makefile)
nmake
eingegeben und dann die Fehlermeldung bekommen.

Verfasst: 25. Januar 2008 12:11
von Christian81
vlib2.lib ist ggf. eine statische lib und braucht deshalb die andere lib.

Verfasst: 25. Januar 2008 12:19
von methusalem
Laut dem Kollegen, der die Lib erstellt hat ist dies nicht so.

Kann es daran liegen, das er die Lib unter VS 6 erstellt hat und ich das ganze mit dem Compiler des VS 2005 nutze.

Verfasst: 25. Januar 2008 13:10
von Christian81
Ja, laut google kommt libcid.lib von msvc6 - wer benutzt einen solch alten Compiler noch??

Verfasst: 25. Januar 2008 14:03
von methusalem
ich war bisher davon ausgegangen, das ich, wenn ich eine lib bekomme und nutzen will, ich mir dadurch keine weiteren Abhängigkeiten einfange.

Watt nu? Hat jemand ne Idee? Die Sourcen zu der Lib hab ich nicht, ich kann die also nicht bei mir übersetzen!

Verfasst: 25. Januar 2008 15:54
von Christian81
Nur Abhängigkeiten zur msvc runtime... naja also entweder Du benutzt msvc6 oder derjenige kompiliert es für msvc2005.

Verfasst: 25. Januar 2008 16:11
von methusalem
jou ... ich konnte Ihn davon überzeugen, das er es mir noch mal mit VSE 2005 übersetzt!

Danke für die Tipps