Microsoftin sivuilta kävin Visual C++ Express Editionin ja Platform SDK:n, ja kun yritän kääntää ohjelmaa, saan satoja "error LNK2001: unresolved external symbol __imp__..." virheilmoituksia. Poluista löytyy tämmöstä, Platform SDK on asennettu tuonne VSInstallin juureen (..\Microsoft Visual Studio 8\PlatformSDK\). Nuo "symbolit" kyllä löytyvät Platform SDK:n Include-kansion header-tiedostoista, mutta linkkerille pitänee antaa .lib-tiedostoja? Puuttuuko minulta jotakin, vai enkö ole antanut linkerille kaikkia tarvittavia tietoja?
Linker command-line:
/OUT:"Release/Notepad2.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"Release\Notepad2.exe.intermediate.manifest" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /OPT:NOWIN98 /LTCG /MACHINE:X86 /ERRORREPORT:PROMPT comctl32.lib shlwapi.lib imm32.lib kernel32.lib
Compiler command-line:
/O2 /Ob1 /Oy /GL /I "Scintilla\include" /I "Scintilla\src" /I "Scintilla\win32" /D "STATIC_BUILD" /D "SCI_LEXER" /D "NDEBUG" /D "_VC80_UPGRADE=0x0700" /D "_MBCS" /GF /FD /EHsc /MT /Gy /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c /Zi /TP /errorReport:prompt
Onpahan muuten kauhea tämä online install, ei järin asentajaystävällinen kun pistät vahingossa väärään kansioon.
EDIT: Yritän siis kääntää Notepad2:sta, lisäsin siihen Intterwebsistä löytyneen Ruby-värityksen. Jos joku tahtoo kääntää tän miulle niin pistän sorsat palvelimelle, tässä tulee valmiiks mukaan VC++ Project -tiedosto.
Moikka tsuriga!
kokeile seuraavaa...
*** Tutki ekaks C:\Program files kansiosta löytyykö kansio
\Microsoft Visual Studio .NET 2005\Vc8\lib
tahi
\Microsoft Visual Studio .NET 2003\Vc7\lib
Käynnistä -> Oma tietokone (nappaa päällä oikealla) -> Ominaisuudet -> Lisäasetukset -> Ympäristömuuttujat - tutki se alempi loota, jos löytyy
lib niin aktivoi ja valitse Muokkaa - tutki josko löytyy ***tapauksesta riippuen pätkä - ;C:\Program Files\Microsoft Visual Studio .NET 2005\Vc8\lib tahi ;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib
- jos ei löydy niin lisää ja klikkaile OK:ta. Mikäli koko lib jutskaa ei löydy niin valitse Uusi kirjoita lib siihen ylempään lootaan ja kirjoita tapauksesta riippuen jompi kumpi noista poluista siihen alempaan lootaan...
Lisäks niille, jotka käyttävät esim. SharpDevelop'a ja Microsoft.NET SDK on asennettuna niin lisätkää samaiseen lib -jutskaan vielä: ;C:\Program Files\Microsoft.NET\SDK\v2.0\Lib - tohon v2.0 'väliin' tulee Framework'n versio
C:\Program Files\Microsoft Visual Studio .NET 2003\
alla ei ole tiedostoja, pelkkä tyhjä \Common7\IDE\
. VC-kansio löytyy tästä polusta C:\Program Files\Microsoft Visual Studio 8\VC
. lib-järjestelmämuuttujassa on polku C:\Program Files\Microsoft Visual Studio 8\PlatformSDK\Lib\.
. Tämän sinne lisäsi luultavasti PlatformSDK:n juuresta löytyvä SetEnv.cmd, jonka ajoin.
EDIT: Lisäsin sekä järjestelmä- että ympäristömuuttujiin lib- ja include-polkuihin myös nuo Visual Studio 8\VC\Lib
sekä \Include
ja boottasin - ei vaikutusta.
Tässä vielä kuva tämänhetkisistä Lib-asetuksista VC++ '05 EE:ssä
Moikka taas tsuriga!
Ei löydy samaisesta kansiosta, mutta jostain kyllä varmaankin. Näillä ohjeilla sain käännettyä. Käännetyssä ohjelmassa tuo lisätty Ruby-väritys ei tosin toimi, ja ohjelman exestä tuli 400kB isompi kuin virallisesta julkaisusta. Kiitoksia ohjeistuksesta.
EDIT: Itse asiassa, aiheeseen liittyen - tuo Ruby-väritys ei ilmeisesti toimi, koska ohjelma ei ole kääntänyt LexRuby.cxx
-tiedostoa LexRuby.obj
-tiedostoksi. Löytyykös neuvoa, kuinka lisään tuon tiedoston projektiin tässä VC++05EE:ssä / käännän sen objektitiedostoksi?
Itse itselleni vastaten, päädyin lisäämään tiedostot käsin Notepad2.vcproj
-tiedostoon - nyt toimii sekä Ruby-, että Nsis-väritykset. Sain myös pienennettyä tiedostoa; UPX pienentää näköjään tiedostokokoa erittäin hulppeasti, .exen pakkaussuhteeksi tuli 42.90% ja tiedoston koko on nyt 269kB, mikä käy järkeen kun alkuperäinen julkaisu on 248kB.
Pistän ohjelman serverille kunhan kerkeän pystyttämään jonkinnäköiset sivut. Jos joku kaipaa ennemmin niin mailia tai viestiä keskusteluun.
Aihe on jo aika vanha, joten et voi enää vastata siihen.