Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 22. listopad 2009, 13:05:52 Předmět: Problém při kompilaci s Visual Studio 9.0 |
|
|
Chtěl jsem převést svůj stávající projekt z jednoho prostředí do druhého. (z Code::Blocks), stáhl si potřebné knihovny pro VS, nastavil projekt, ale někde je asi chyba.
Při debuggování mi to padá a ukazuje řádek s
kód: |
retval = __dllonexit((_onexit_t)_encode_pointer(func), &onexitbegin, &onexitend); |
z atoexit.c
Možná to souvisí s warningem, který se mi pokaždé ukazuje :
kód: |
MSVCRT.lib(cpu_disp.obj) : warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators |
Tenhle warning jsem i vygooglil, bohužel moc užitečných rad jsem nenašel.
Setkal se někdo s něčím podobným?
Navíc je zajímavé, že pokud to pustím v rámci Visual Studia, tak to nedojde ani na první break point hned na první řádce v main fci, pokud to pustím jako normální exe soubor, tak se i vytvoří okno se správnou ikonkou, ale pak to padne. (žádná hláška, jen to vyjede) _________________
 |
|
Návrat nahoru |
|
 |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 22. listopad 2009, 15:09:53 Předmět: |
|
|
Zajímavé, že vždy řeším nějaký problém dny, pak se zeptám a vyřeším ho během "chvíle".
Pro lidi, co toto vygooglí. Řešením bylo založit nový projekt přesně podle tohoto návodu http://www.mrmoen.com/2008/03/30/opengl-with-visual-c-express-edition/
Pravděpodobně byla předtím chyba, že jsem při vytváření projektu zvolil špatný typ projektu. (používám OpenGL, Freetype, SDL) _________________
 |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 22. listopad 2009, 15:13:47 Předmět: |
|
|
Určitě jsi před kompilací ve VS smazal všechny .obj soubory vytvořené Codem::Blocks? Používáš správné verze knihoven (pro VS)? _________________ Mám strach |
|
Návrat nahoru |
|
 |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 22. listopad 2009, 15:45:34 Předmět: |
|
|
Quirk: už je vyřešeno, příspěvek výše. A jinak ano, to jsem udělal, lépe řečeno ve VS jsem udělal nový projekt a jen zkopíroval a vložil zdrojáky.
Spíš teď jiný "problém". Vše bez problémů funguje, jen mi tam visí jeden warning, s kterým nevím co udělat.
kód: |
1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library |
když nastavím NODEFAULTLIB, případně jen tuto knihovnu dám ignorovat, tak se mi objeví spousta jiných chyb.
kód: |
1>main.obj : error LNK2019: unresolved external symbol __imp__fprintf referenced in function _SDL_main
1>engine.obj : error LNK2001: unresolved external symbol __imp__fprintf
1>TGALoader.obj : error LNK2001: unresolved external symbol __imp__fprintf
1>Vector.obj : error LNK2001: unresolved external symbol __imp__fprintf |
_________________
 |
|
Návrat nahoru |
|
 |
Mnemonic

Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 22. listopad 2009, 20:57:59 Předmět: |
|
|
Tohle je typicky zpusobeno tim, ze linkujes .liby, ktere jsou zkompilovany s jinou verzi VC++ runtime. Napriklad, svuj program kompilujes se statickou verzi runtime, a linkujes k nemu SDL, ktere je kompilovano s DLL verzi runtime (viz v nastaveni projektu C/C++\Code generation\Runtime Library). |
|
Návrat nahoru |
|
 |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 22. listopad 2009, 22:27:27 Předmět: |
|
|
teď jsem zjistil, že mi ten warning hází jen při kompilaci debug verze, u releasu ne. _________________
 |
|
Návrat nahoru |
|
 |
|