Forum > Windows

optimized sources

<< < (17/179) > >>

_heinz:
Hallo Simon,
Problem bei VS2005:
immer wenn der Präprozessor eingeschaltet ist wird zwar kompiliert aber kein Objektmodul ausgegeben,
siehe kleines Beispielprogramm was hallo ausgibt
------------------------------------------------------------------
------ Erstellen gestartet: Projekt: hallo, Konfiguration: Release Win32 ------
Kompilieren...
stdafx.cpp
Kompilieren...
hallo.cpp
Verknüpfen...
LINK : fatal error LNK1181: Eingabedatei ".\Release\stdafx.obj" kann nicht geöffnet werden.
Das Buildprotokoll wurde unter "file://c:\I\VS2005\Projects\hallo\hallo\Release\BuildLog.htm" gespeichert.
hallo - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

wie und wo muss man das richtig einstellen dass es funktioniert?
MFG heinz ~seti_britta

Crunch3r:

--- Quote from: seti_britta on 16 May 2007, 07:26:12 pm ---Hallo Simon,
Problem bei VS2005:
immer wenn der Präprozessor eingeschaltet ist wird zwar kompiliert aber kein Objektmodul ausgegeben,
siehe kleines Beispielprogramm was hallo ausgibt
------------------------------------------------------------------
------ Erstellen gestartet: Projekt: hallo, Konfiguration: Release Win32 ------
Kompilieren...
stdafx.cpp
Kompilieren...
hallo.cpp
Verknüpfen...
LINK : fatal error LNK1181: Eingabedatei ".\Release\stdafx.obj" kann nicht geöffnet werden.
Das Buildprotokoll wurde unter "file://c:\I\VS2005\Projects\hallo\hallo\Release\BuildLog.htm" gespeichert.
hallo - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

wie und wo muss man das richtig einstellen dass es funktioniert?
MFG heinz ~seti_britta

--- End quote ---


Schalte doch mal das benutzen der "Precompiled Headers" aus oder stell es auf  "Create Precompiled Headers".


_heinz:
Hallo Crunch3r,
vielleicht erst einmal zum Stand der Dinge:
jetzt hab ich zum 2.ten mal die IDE neu installiert. Teils wegen der langen Verzeichnisnamen bzw dem Problem der Leerzeichen in Pfadnamen bezüglich des Linkers.
Trotz alledem bekomme ich in den Projekten die einen Präprozessorlauf erfordern (Optimizer, seti_boinc)
immer am ende LNK1181 Eingabedatei ... kann nicht geöffnet werden.
Aus diesem Grunde habe ich nun ein kleines Beispiel gemacht.
hier der Quelltext:
--------------------------------
// hallo.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <stdio.h>


int _tmain(int argc, _TCHAR* argv[])
{
#ifndef A
#define A char;
#endif
#define B char;


#ifdef A
   printf("Hallo\n");

#else
   printf("Guten Tag\n");
#endif
#ifdef B
   printf("B is defined\n");
#endif

   return 0;
}

--------------------------------------------------------------------------------------
hier das BuildLog (Präprozessor aus)
Buildprotokoll     Erstellen wurde gestartet: Projekt: "hallo", Konfiguration: "Release|Win32"
 Umgebungsbereich         _ACP_ATLPROV=C:\I\VS8\VC\Bin\ATLProv.dll
    _ACP_INCLUDE=C:\I\VS8\VC\include;C:\I\VS8\VC\include;C:\I\VS8\SDK\v2.0\include;C:\I\SDK\Include;C:\I\INTEL\IPP\5.2_beta\ia32\include;C:\I\INTEL\IPP\5.2_beta\ia32\tools\staticlib;C:\I\INTEL\MKL\9.0\include
    _ACP_LIB=C:\I\VS8\VC\lib;C:\I\VS8\;C:\I\VS8\lib;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\win_build\Release32-NOGFX;C:\I\SDK\Lib;C:\I\VS8\SDK\v2.0\Lib;C:\I\INTEL\IPP\5.2_beta\ia32\lib;C:\I\INTEL\IPP\5.2_beta\ia32\stublib;C:\I\INTEL\MKL\9.0\ia32\lib;C:\I\VS8\SDK\v2.0\lib
    _ACP_PATH=C:\I\VS8\VC\bin;C:\I\SDK\Bin;C:\I\VS8\Common7\Tools\bin;C:\I\VS8\Common7\tools;C:\I\VS8\Common7\ide;C:\Programme\HTML Help Workshop;C:\I\VS8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\I\VS8\;C:\I\INTEL\MKL\9.0\ia32\bin;C:\I\INTEL\IPP\5.2_beta\ia32\bin;C:\Programme\Windows Resource Kits\Tools\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programme\Gemeinsame Dateien\Ulead Systems\MPEG;C:\Programme\Support Tools\;C:\Programme\Microsoft SQL Server\90\Tools\binn\
    ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
    APPDATA=C:\Dokumente und Einstellungen\heinz\Anwendungsdaten
    CLIENTNAME=Console
    CommonProgramFiles=C:\Programme\Gemeinsame Dateien
    COMPUTERNAME=DURSTI01
    ComSpec=C:\WINDOWS\system32\cmd.exe
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Dokumente und Einstellungen\heinz
    INCLUDE=C:\I\VS8\VC\include;C:\I\VS8\VC\include;C:\I\VS8\SDK\v2.0\include;C:\I\SDK\Include;C:\I\INTEL\IPP\5.2_beta\ia32\include;C:\I\INTEL\IPP\5.2_beta\ia32\tools\staticlib;C:\I\INTEL\MKL\9.0\include
    INTEL_LICENSE_FILE=C:\Programme\Gemeinsame Dateien\Intel\Licenses
    LIB=C:\I\VS8\VC\lib;C:\I\VS8\;C:\I\VS8\lib;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\win_build\Release32-NOGFX;C:\I\SDK\Lib;C:\I\VS8\SDK\v2.0\Lib;C:\I\INTEL\IPP\5.2_beta\ia32\lib;C:\I\INTEL\IPP\5.2_beta\ia32\stublib;C:\I\INTEL\MKL\9.0\ia32\lib;C:\I\VS8\SDK\v2.0\lib
    LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
    LOGONSERVER=\\DURSTI01
    NUMBER_OF_PROCESSORS=1
    OS=Windows_NT
    PATH=C:\I\VS8\VC\bin;C:\I\SDK\Bin;C:\I\VS8\Common7\Tools\bin;C:\I\VS8\Common7\tools;C:\I\VS8\Common7\ide;C:\Programme\HTML Help Workshop;C:\I\VS8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\I\VS8\;C:\I\INTEL\MKL\9.0\ia32\bin;C:\I\INTEL\IPP\5.2_beta\ia32\bin;C:\Programme\Windows Resource Kits\Tools\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programme\Gemeinsame Dateien\Ulead Systems\MPEG;C:\Programme\Support Tools\;C:\Programme\Microsoft SQL Server\90\Tools\binn\
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel
    PROCESSOR_LEVEL=15
    PROCESSOR_REVISION=0207
    ProgramFiles=C:\Programme
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\TEMP
    TMP=C:\TMP
    USERDOMAIN=DURSTI01
    USERNAME=heinz
    USERPROFILE=C:\Dokumente und Einstellungen\heinz
    VS80COMNTOOLS=C:\I\VS8\Common7\Tools\
    WecVersionForRosebud.BA0=2
    windir=C:\WINDOWS
 Befehlszeilen     Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002629764420.rsp" wird erstellt. Inhalt:
[
/O2 /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /FD /EHsc /MT /Gy /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /c /Wp64 /Zi /TP .\hallo.cpp
]Erstellen der Befehlszeile "cl.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002629764420.rsp /nologo /errorReport:prompt"Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002729764420.rsp" wird erstellt. Inhalt:
[
/OUT:"C:\I\VS2005\Projects\hallo\Release\hallo.exe" /INCREMENTAL:NO /MANIFEST /MANIFESTFILE:"Release\hallo.exe.intermediate.manifest" /DEBUG /PDB:"c:\I\VS2005\Projects\hallo\release\hallo.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 kernel32.lib

".\Release\hallo.obj"

".\Release\stdafx.obj"
]Erstellen der Befehlszeile "link.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002729764420.rsp /NOLOGO /ERRORREPORT:PROMPT"Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002829764420.rsp" wird erstellt. Inhalt:
[
/outputresource:"..\release\hallo.exe;#1" /manifest

.\Release\hallo.exe.intermediate.manifest
]Erstellen der Befehlszeile "mt.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002829764420.rsp /nologo"Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\BAT00002929764420.bat" wird erstellt. Inhalt:
[
@echo, die Manifestressource wurde zuletzt um %TIME% am %DATE% aktualisiert > .\Release\mt.dep
]Erstellen der Befehlszeile "c:\I\VS2005\Projects\hallo\hallo\Release\BAT00002929764420.bat" Ausgabefenster     Kompilieren...
hallo.cpp
Verknüpfen...
Code wird generiert.
Codegenerierung ist abgeschlossen.
Das Manifest wird eingebettet...
 Ergebnisse     Das Buildprotokoll wurde unter "file://c:\I\VS2005\Projects\hallo\hallo\Release\BuildLog.htm" gespeichert.
hallo - 0 Fehler, 0 Warnung(en)
 ---------------------------------------------------
wie man sieht alles OK, im Programm sind A und B definiert und die Ausgabe ist auch richtig. Das Programm gibt aus:
Hallo
B is defined
---------------------------------------
soweit OK
jetzt schalten wir mal den Präprozessor ein:
Mit Zeilennummern (/P)
und erstellen neu:
-----------------------------------------
Buildprotokoll     Neu erstellen wurde gestartet: Projekt: "hallo", Konfiguration: "Release|Win32"
 Umgebungsbereich         _ACP_ATLPROV=C:\I\VS8\VC\Bin\ATLProv.dll
    _ACP_INCLUDE=C:\I\VS8\VC\include;C:\I\VS8\VC\include;C:\I\VS8\SDK\v2.0\include;C:\I\SDK\Include;C:\I\INTEL\IPP\5.2_beta\ia32\include;C:\I\INTEL\IPP\5.2_beta\ia32\tools\staticlib;C:\I\INTEL\MKL\9.0\include
    _ACP_LIB=C:\I\VS8\VC\lib;C:\I\VS8\;C:\I\VS8\lib;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\win_build\Release32-NOGFX;C:\I\SDK\Lib;C:\I\VS8\SDK\v2.0\Lib;C:\I\INTEL\IPP\5.2_beta\ia32\lib;C:\I\INTEL\IPP\5.2_beta\ia32\stublib;C:\I\INTEL\MKL\9.0\ia32\lib;C:\I\VS8\SDK\v2.0\lib
    _ACP_PATH=C:\I\VS8\VC\bin;C:\I\SDK\Bin;C:\I\VS8\Common7\Tools\bin;C:\I\VS8\Common7\tools;C:\I\VS8\Common7\ide;C:\Programme\HTML Help Workshop;C:\I\VS8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\I\VS8\;C:\I\INTEL\MKL\9.0\ia32\bin;C:\I\INTEL\IPP\5.2_beta\ia32\bin;C:\Programme\Windows Resource Kits\Tools\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programme\Gemeinsame Dateien\Ulead Systems\MPEG;C:\Programme\Support Tools\;C:\Programme\Microsoft SQL Server\90\Tools\binn\
    ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
    APPDATA=C:\Dokumente und Einstellungen\heinz\Anwendungsdaten
    CLIENTNAME=Console
    CommonProgramFiles=C:\Programme\Gemeinsame Dateien
    COMPUTERNAME=DURSTI01
    ComSpec=C:\WINDOWS\system32\cmd.exe
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Dokumente und Einstellungen\heinz
    INCLUDE=C:\I\VS8\VC\include;C:\I\VS8\VC\include;C:\I\VS8\SDK\v2.0\include;C:\I\SDK\Include;C:\I\INTEL\IPP\5.2_beta\ia32\include;C:\I\INTEL\IPP\5.2_beta\ia32\tools\staticlib;C:\I\INTEL\MKL\9.0\include
    INTEL_LICENSE_FILE=C:\Programme\Gemeinsame Dateien\Intel\Licenses
    LIB=C:\I\VS8\VC\lib;C:\I\VS8\;C:\I\VS8\lib;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX;C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\win_build\Release32-NOGFX;C:\I\SDK\Lib;C:\I\VS8\SDK\v2.0\Lib;C:\I\INTEL\IPP\5.2_beta\ia32\lib;C:\I\INTEL\IPP\5.2_beta\ia32\stublib;C:\I\INTEL\MKL\9.0\ia32\lib;C:\I\VS8\SDK\v2.0\lib
    LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
    LOGONSERVER=\\DURSTI01
    NUMBER_OF_PROCESSORS=1
    OS=Windows_NT
    PATH=C:\I\VS8\VC\bin;C:\I\SDK\Bin;C:\I\VS8\Common7\Tools\bin;C:\I\VS8\Common7\tools;C:\I\VS8\Common7\ide;C:\Programme\HTML Help Workshop;C:\I\VS8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\I\VS8\;C:\I\INTEL\MKL\9.0\ia32\bin;C:\I\INTEL\IPP\5.2_beta\ia32\bin;C:\Programme\Windows Resource Kits\Tools\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programme\Gemeinsame Dateien\Ulead Systems\MPEG;C:\Programme\Support Tools\;C:\Programme\Microsoft SQL Server\90\Tools\binn\
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel
    PROCESSOR_LEVEL=15
    PROCESSOR_REVISION=0207
    ProgramFiles=C:\Programme
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\TEMP
    TMP=C:\TMP
    USERDOMAIN=DURSTI01
    USERNAME=heinz
    USERPROFILE=C:\Dokumente und Einstellungen\heinz
    VS80COMNTOOLS=C:\I\VS8\Common7\Tools\
    WecVersionForRosebud.BA0=2
    windir=C:\WINDOWS
 Befehlszeilen     Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002E29767904.rsp" wird erstellt. Inhalt:
[
/O2 /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /P /FD /EHsc /MT /Gy /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /c /Wp64 /Zi /TP .\hallo.cpp
]Erstellen der Befehlszeile "cl.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002E29767904.rsp /nologo /errorReport:prompt"Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002F29767904.rsp" wird erstellt. Inhalt:
[
/O2 /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /P /FD /EHsc /MT /Gy /Yc"stdafx.h" /Fp"Release\hallo.pch" /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /c /Wp64 /Zi /TP .\stdafx.cpp
]Erstellen der Befehlszeile "cl.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00002F29767904.rsp /nologo /errorReport:prompt"Die temporäre Datei "c:\I\VS2005\Projects\hallo\hallo\Release\RSP00003029767904.rsp" wird erstellt. Inhalt:
[
/OUT:"C:\I\VS2005\Projects\hallo\Release\hallo.exe" /INCREMENTAL:NO /MANIFEST /MANIFESTFILE:"Release\hallo.exe.intermediate.manifest" /DEBUG /PDB:"c:\I\VS2005\Projects\hallo\release\hallo.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 kernel32.lib

".\Release\hallo.obj"

".\Release\stdafx.obj"
]Erstellen der Befehlszeile "link.exe @c:\I\VS2005\Projects\hallo\hallo\Release\RSP00003029767904.rsp /NOLOGO /ERRORREPORT:PROMPT" Ausgabefenster     Kompilieren...
stdafx.cpp
Kompilieren...
hallo.cpp
Verknüpfen...
LINK : fatal error LNK1181: Eingabedatei ".\Release\hallo.obj" kann nicht geöffnet werden.
 Ergebnisse     Das Buildprotokoll wurde unter "file://c:\I\VS2005\Projects\hallo\hallo\Release\BuildLog.htm" gespeichert.
hallo - 1 Fehler, 0 Warnung(en)
 
---------------------------------------------------------
wenn man jetzt ins Projektverzeichnis Hallo schaut sieht man 2 neu Dateien:
Hallo.i     ---> Preprocessed C/C++ Source
stdafx.i   ---> Preprocessed C/C++ Source
-------------------------------------------------------------
soweit OK, das muss ja auch so sein.
Wenn dann compiliert wird, sieht man dass nirgendswo ein Objektfile erzeugt wird.  :'(
Lediglich einige rsp Dateien werden erzeugt, die aber am Ende sofort wieder gelöscht werden,
so dass ich sie nicht untersuchen kann.
------------------------------------------------
so ist es in diesem kleinen Beispiel
und auch in Optimizer und seti_boinc
------------------------------------------------------
nun hab ich schon viel im Net herumgesucht aber noch nicht gefunden wie die dateien dem Linker beim Präprozessorlauf übergeben werden und wo man dass dann angeben muss in dieser Benutzeroberfläche.
--------------------------------------------------------------------------------
was bisher erfolgreich war:
alles was ohne Präprozessorlauf abarbeitbar war:
glut32
image_libs
jpeglib
libboinc
libboincapi
non_ICC
setiboincdb
----------------------
ojee,,,, schöne alte Zeiten wo man das alles mit ein paar befehlszeilen im batchfile machen konnte.

P.S precompiled header aus hat nix geändert.
bin für jeden Hinweis dankbar.
schönen Feiertag für alle
MFG heinz ~seti_britta

Crunch3r:
Kannst du dein Hallo projekt mal packen und irgendwo hoch laden damit man sich das mal anschauen kann ?

_heinz:
Hallo Crunch3r,
hier iss es als 7z


[attachment deleted by admin]

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version