tutorials.de Buch-Aktion 02/2012
Like Tree3Danke
  • 1 Beitrag von napstermania
  • 1 Beitrag von deepthroat
  • 1 Beitrag von napstermania
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
738
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Hallo zusammen,

    Code cpp:
    1
    
    LINK : warning LNK4089: Alle Verweise auf "SHELL32.dll" wurden durch /OPT:REF verworfen
    obwohl es hierzu div. Seiten im Web gibt, komme ich mit dieser Meldung nicht wirklich zurecht ...


    Beim Versuch eine Release-Version meines Progs zu erstellen, tauchte die o. g. Warning auf.
    Wenn ich all die Hinweise im Web richtig verstehe, ist sie im Grunde genommen nicht tragisch, da
    die besagten Dateien als Input Libraries angegebenist, aber alle Aufrufe wegoptimiert wurden (bzw. es keine gibt) und der Linker die Referenzen wegoptimiert hast

    Soweit, so gut

    Ich habe dann zuerst in den Projekteinstellungen die Lib "shell32.dll" entfernt, aber die Warning kam immer noch ....
    Selbst ein Disablen der Warning ("#pragma warning( disable : 4101 )") (in unterschiedlichen Sourcen und Headern) bringt keinen Erfolg ....

    Auch wenn die Warnung ja scheinbar in Grunde harmlos ist, würde ich sie gerne beseitigen resp. zumindest den Grund dafür erfahren, warum ich sie immer noch bekomme !

    Ich hoffe, irgendwer kann mir hier auf die Sprünge helfen!

    Danke und Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Hi.

    Evtl. war bzw. ist irgendwo ein #pragma comment(lib, "shell32.lib") in deinen Quelldateien enthalten?

    Gruß

    \edit: Warnungen des Linkers kannst du nicht mit pragmas im Sourcecode abschalten. (LNK4089 ist etwas anderes als C4089 und etwas ganz anderes als C4101). Da mußt du schon in den Projekteinstellungen Einstellungen vornehmen.
    Geändert von deepthroat (06.07.10 um 09:38 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin deepthroat,

    nein, das ist nicht drin ...
    Ich hatte schon in allen Dateien nach "shell" gesucht, aber nichts gefunden

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Moin deepthroat,

    nein, das ist nicht drin ...
    Ich hatte schon in allen Dateien nach "shell" gesucht, aber nichts gefunden
    Hast du mal die Solution komplett neu erstellt?

    Hast du irgendwelche .vsprops Dateien eingebunden?

    Gruß
    Geändert von deepthroat (06.07.10 um 09:44 Uhr) Grund: ich meinte .vsprops
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Zitat Zitat von deepthroat Beitrag anzeigen
    Hast du mal die Solution komplett neu erstellt?
    Hast du irgendwelche .vcprops Dateien eingebunden?
    Falls Du mit "Solution" das gesamte Projekt meinst, dann ja ... das mache in schöner Regelmäßigkeit

    ".vcprops"
    Sagt mir nichts - wo würde ich die denn sehen?
    Habe gerade mal schnell C: durchsuchen lassen und diese Datei auch nicht gefunden ...

    Die eingestellten Projektoptionen sehen so aus :
    Code cpp:
    1
    
    ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/#GSWorkerServer.pdb" /machine:I386 /nodefaultlib:"Nafxcwd.lib Libcmtd.lib" /out:"k:\orga\internet\workerserver\#GSWorkerServer.exe"

    und weiterhin
    Code cpp:
    1
    2
    3
    
    MFC mit einer Statischen Bibl. verwenden
    // sowie
    vorcompilierte Header nicht verwenden

    Kann es da irgendwelche Abhängigkeiten geben ? ? ?

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  6. #6
    napstermania napstermania ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Deutschland
    Beiträge
    95
    Hallo vfl_freak,

    im Grunde sagt dir der Linker ja schon alles

    "OPT:REF" bedeutet das er Daten, auf die Verwiesen wird automatisch vom Linker entfernt werden. Wenn du diese Meldung nicht mehr haben willst dann setz die Linker Option einfach auf "OPT:NOREF", dann behält er diese Daten. Folglich ist auch die Warnung weg.

    Ich hoffe ich konnte helfen

    Gruß
    vfl_freak bedankt sich. 

  7. #7
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin napstermania,

    Zitat Zitat von napstermania Beitrag anzeigen
    im Grunde sagt dir der Linker ja schon alles
    "OPT:REF" bedeutet das er Daten, auf die Verwiesen wird automatisch vom Linker entfernt werden. Wenn du diese Meldung nicht mehr haben willst dann setz die Linker Option einfach auf "OPT:NOREF", dann behält er diese Daten. Folglich ist auch die Warnung weg.
    ok, nur wo stelle ich dann des im VS ein?
    In den Projekteinstellungen finde ich keine entsprechende Option - oder heißt sie unter 6.0 nur anders

    Gruß
    Klaus


    [EDIT] oder ist "/OPT:REF" ein Default, der nicht aufgeführt wird ? ?
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Zitat Zitat von vfl_freak Beitrag anzeigen
    Falls Du mit "Solution" das gesamte Projekt meinst
    Ja, das "Oberprojekt" ist die Solution (.sln) meist aus mehreren Projekten besteht. (siehe z.B. http://www.ucertify.com/article/what...tudio-net.html)
    Zitat Zitat von vfl_freak Beitrag anzeigen
    ".vcprops"
    Sagt mir nichts - wo würde ich die denn sehen?
    Ich meinte vsprops (siehe http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx). Die eingebundenen Property Sheets kann man im Property Manager Tab einsehen (siehe z.B. http://blog.emptycrate.com/node/421)

    Was steht denn im Build-Protokoll?

    Gruß

    \edit: Ich sehe gerade du verwendest VC++ 6. Autsch.
    Geändert von deepthroat (06.07.10 um 10:38 Uhr)
    vfl_freak bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  9. #9
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Zitat Zitat von deepthroat Beitrag anzeigen
    \edit: Ich sehe gerade du verwendest VC++ 6. Autsch
    Ja
    das ist leider eines der anliegenden Probleme .....

    Bislang hat sich unser Chef standhaft geweigert, mich die Umgebung auf eine neuere Version umstellen zu lassen

    Da wir hier aber in absehbarer Zeit von XP auf Win7 umstellen wollen, habe ich noch die kleine Hoffnung, dass das Studio 6.0 dort event. nicht resp. nicht mehr 100 %-ig läuft und ich mich dann endlich mal an ein Update machen kann.
    Event. muss ich ihm da auch ein bisschen was vorgauckeln

    Ich denke, ich werde jetzt mal erst mit der Warnung leben (können) ....

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  10. #10
    napstermania napstermania ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Deutschland
    Beiträge
    95
    Hallo vfl_freak,

    du kannst die Option direkt in den Project Options im Link-Tab setzen. Es gibt leider keine Auswahl via GUI wie in den neueren Versionen, von daher bleibt dir nur die Änderung per Hand. Einfach /OPT:NOREF einfügen und es sollte deaktiviert sein. Ich kann dir aber nicht sagen wie sich das bei einer Release verhält, da ein Release standartmäsig Optimiert gelinkt wird.

    Gruß
     

  11. #11
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Hallo napstermania,

    Ah, verstehe .... Danke
    Ok, ich werde es mal testen und schauen, ob und welche Auswirkungen das hat !

    BTW: sagt Euch die Linker-Option /EDITANDCONTINUE etwas?
    Lt. Internet soll es die Option /ZI sein, die ich mir aber auch nicht finde ...

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  12. #12
    napstermania napstermania ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Deutschland
    Beiträge
    95
    Hi,

    das ist richtig, die Option lautet /ZI. Es ist allerdings eine Compileroption.

    EDITANDCONTINUE ist eine Debug Option, du findest sie in den Projekteigenschaften -> C/C++, Kathegorie: General, Debug Info. In dem feld kannst du die Option "Program Database for Edit and Continue" setzen. Dies ermöglicht dir kleinere Änderungen am Sourcecode wärend du dich im Debugger befindest. Ist recht nützlich.

    Grüsse
    vfl_freak bedankt sich. 

  13. #13
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin,

    ah - klar, die war bei mir in einem der Server für die Release-Version noch gesetzt ... Danke

    Ist aber auch ein Gewurtschel mit den Einstellungen

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

Ähnliche Themen

  1. Linker
    Von nosrep123 im Forum VisualStudio & MFC
    Antworten: 6
    Letzter Beitrag: 30.06.10, 09:31
  2. Antworten: 1
    Letzter Beitrag: 16.12.05, 12:03
  3. Antworten: 2
    Letzter Beitrag: 12.02.05, 13:30
  4. Was will der Linker von mir
    Von masda im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 19.10.04, 19:05
  5. [MS VC6] Linker-Problem
    Von Marcus Roffmann im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 26.10.02, 21:52