visual studio vs. jine programy
 

News:

03/MAR/2014 CzDC.org was temporary unavailable because of DDOS attack and hosting service provider issues...
20/JAN/2011 CzDC 0.699 D1 released...
16/JAN/2011 CzDC 0.699 D released...
24/DEC/2009 CzDC 0.699 C released...

Main Menu

visual studio vs. jine programy

Started by TURBO_KrteK, 15 December, 2004, 16:20:52

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TURBO_KrteK

mam takovy problem, jakmile nastavim visual studio, tak aby v nem slo kompilovat CZDC++ uz mi to nevezme jine projekty :huh:

napr. dam vytvorit win32 console project, tak jak se mi otevre dam kompilovat a vyhodi mi to tyhle chyby
------ Build started: Project: test1, Configuration: Release Win32 ------

Compiling...
stdafx.cpp
Compiling...
test1.cpp
Linking...
LIBCMT.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in LIBC.lib(osfinfo.obj)
LIBCMT.lib(osfinfo.obj) : error LNK2005: __free_osfhnd already defined in LIBC.lib(osfinfo.obj)
LIBCMT.lib(osfinfo.obj) : error LNK2005: __get_osfhandle already defined in LIBC.lib(osfinfo.obj)
LIBCMT.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in LIBC.lib(osfinfo.obj)
LIBCMT.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in LIBC.lib(osfinfo.obj)
LIBCMT.lib(dosmap.obj) : error LNK2005: __dosmaperr already defined in LIBC.lib(dosmap.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: ___init_dummy already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: __strcats already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: ___lc_strtolc already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: ___lc_lctostr already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: __expandlocale already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: _setlocale already defined in LIBC.lib(setlocal.obj)
LIBCMT.lib(mbctype.obj) : error LNK2005: __getmbcp already defined in LIBC.lib(mbctype.obj)
LIBCMT.lib(mbctype.obj) : error LNK2005: __setmbcp already defined in LIBC.lib(mbctype.obj)
LIBCMT.lib(mbctype.obj) : error LNK2005: ___initmbctable already defined in LIBC.lib(mbctype.obj)
LIBCMT.lib(initctyp.obj) : error LNK2005: ___init_ctype already defined in LIBC.lib(initctyp.obj)
LIBCMT.lib(initctyp.obj) : error LNK2005: ____mb_cur_max_func already defined in LIBC.lib(initctyp.obj)
LIBCMT.lib(initctyp.obj) : error LNK2005: ____lc_codepage_func already defined in LIBC.lib(initctyp.obj)
LIBCMT.lib(initctyp.obj) : error LNK2005: ____lc_collate_cp_func already defined in LIBC.lib(initctyp.obj)
LIBCMT.lib(initctyp.obj) : error LNK2005: ____lc_handle_func already defined in LIBC.lib(initctyp.obj)
LIBCMT.lib(initnum.obj) : error LNK2005: ___free_lconv_num already defined in LIBC.lib(initnum.obj)
LIBCMT.lib(initnum.obj) : error LNK2005: ___init_numeric already defined in LIBC.lib(initnum.obj)
LIBCMT.lib(initmon.obj) : error LNK2005: ___free_lconv_mon already defined in LIBC.lib(initmon.obj)
LIBCMT.lib(initmon.obj) : error LNK2005: ___init_monetary already defined in LIBC.lib(initmon.obj)
LIBCMT.lib(initmon.obj) : error LNK2005: ___lconv_intl already defined in LIBC.lib(initmon.obj)
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
Release/test1.exe : fatal error LNK1169: one or more multiply defined symbols found


pokud ovsem otevru nejaky projekt, ktery sem vytvoril pred nastavenim visual studia, tak se zadny problem pri kompilovani nevyskytne  :(  netusi nekdo kde je chyba ?  :unsure:


[CZ]Q:E:E

No vypada to, ze tam mas dva stejny soubory, jeden se jmenuje LIBCMT.lib a druhej LIBC.lib, ktery navzajem kolidujou... zkus ty soubory dohledat a jeden z nich umazat nebo se ho pokusit nejak odebrat z include...

Na po?

TURBO_KrteK

QuoteNo vypada to, ze tam mas dva stejny soubory, jeden se jmenuje LIBCMT.lib a druhej LIBC.lib, ktery navzajem kolidujou... zkus ty soubory dohledat a jeden z nich umazat nebo se ho pokusit nejak odebrat z include...
dik, kouknu na to

Petrjr

Mam zkusenost s Borlandem, ale toto bude stejne: xxxMT.lib obvykle znaci multithread obdobu xxx.lib. Multithread == vice vlaken == paralelni procesy v ramci jednoho programu.

Pro spravne nastaveni "prekladu" (zde uz nejde o preklad ale o nasledne linkovani) se musi pouzit (prilinkovat) pouze jeden z typu knihovny, vybrany dle toho zda ma cilovy program pracovat ve vice threadech nebo jen v jednom. DCko bych odhadoval ze pouziva vice threadu (napr. hashovani share odhaduji na samostatny thread)  takze pouzij xxxMT variantu.

To, ktera knihovna je pouzita, se urcuje "make" souborem. V pripade Visual Studia odhaduji ze to nebude make soubor ale nejake nastaveni v projektu. Tam bys mel mit (v link options) uvedenou jen jednu z variant, pripadne hledej povoleni/zakazani multithread nebo MT nebo _MT_ ci neco podobneho.

Odebirat z include nejde - neni co - include s tim nema nic spolecneho. Include je zpracovavano v dobe prekladu a pouze deklaruje vlastni a knihovni funce, promenne, makra a pod. Preklad probehne a az pak se davaji dohromady vlastni prelozene funkce s knihovnimi - tomu se rika linkovani - a az v teto chvili nastava rozpor, protoze existuji dve knihovny se stejnym i funkcemi (jedna pro multithread programy / druha pro single thread) a zde je v projektu chybne urceno, ze se maji pouzit knihovny obe. Coz nelze.

Petr

Quick Reply

Warning: this topic has not been posted in for at least 30 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name:
Email:
Shortcuts: ALT+S post or ALT+P preview

SMF spam blocked by CleanTalk