Problem z kompilacja (Multi-threaded Debug (/MTd)) VS 2017

0

Witam, wyczytałem w internecie, że aby statycznie połączyć biblioteki .dll z projektem exe trzeba wybrać w visualu opcje C/C++-->Code generation-->Multi-threaded Debug (/MTd) lecz po wybraniu tej opcji pod koniec kompilowania wyskakują następujące błedy:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2001	unresolved external symbol __imp___popen	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_io.obj)	1	
Error	LNK1120	12 unresolved externals	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\otclient.exe	1	
Error	LNK2001	unresolved external symbol __except_handler4_common	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\MSVCRT.lib(_chandler4gs_.obj)	1	
Error	LNK2001	unresolved external symbol __imp__bsearch	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\physfs.lib(lzma.obj)	1	
Error	LNK2001	unresolved external symbol __imp__clearerr	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_io.obj)	1	
Error	LNK2001	unresolved external symbol __imp__remove	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp__rename	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp__system	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp__tmpfile	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_io.obj)	1	
Error	LNK2001	unresolved external symbol __imp__tmpnam	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp___difftime64	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp___mktime64	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\physfs.lib(zip.obj)	1	
Error	LNK2001	unresolved external symbol __imp___mktime64	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\physfs.lib(windows.obj)	1	
Error	LNK2001	unresolved external symbol __imp___mktime64	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_os.obj)	1	
Error	LNK2001	unresolved external symbol __imp___pclose	otclient	C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\lua51.lib(lib_io.obj)	1	

Tutaj są moje biblioteki sądząc po błedach coś nie tak jest w physfs.lib, lua51.lib

title

0
ruth napisał(a):

statycznie połączyć biblioteki .dll z projektem exe

Yyy, co?

0

Ta opcja robi co innego. Upraszczając, powoduje że biblioteki standardowe C i C++ są wlinkowywane do exe, zamiast być w osobnych DLL-kach które trzeba dołączyć do programu (albo lepiej - zainstalować osobno).

Jeśli chcesz żeby jakaś inna biblioteka była wlinkowywana statycznie to musi być jako taka skompilowana. Czyli w opcjach projektu lua51 itp. musiałbyś to ustawić.

Trochę może być z tym roboty jeśli to jest jakaś gotowa biblioteka - musiałbyś ściągnąć źródła i ogarnąć ich kompilowanie. Gorzej jeżeli twórcy nawet nie przewidują kompilowania jej pod Visualem. Wtedy lepiej chyba sobie dać spokój i zostawić DLLkę jak jest.

0

Ok jeżeli jest tak jak mówisz to chyba dam sobie spokój z tym. No nic dllki muszą być obok programu.
Ostatni pytanie mam otóż skompilowalem z opcją "Multi-threaded Debug DLL (/MDd)" bez problemów, a exe zajmuje teraz 5 300KB wcześniej 4 800KB, można jakoś sie dowiedzieć ktore biblikoteki dll zostały włączone do exe? Któreś w stylu msvcp100.dll itp?

1 użytkowników online, w tym zalogowanych: 0, gości: 1