CRT в VC8.0 - возможна ли статическая компоновка?
А столкнулся я с этим, когда послал одну полезную программку кое-кому (на WinApi, без MFC), а потом я узнал, что прога-то моя не запускается. Все это наверное из-за опции Multi-threaded (/MT). В VC6 и VC7 есть статическая компоновка, а вот что делать в VC8? А мож это не из-за CRT прога не запустилась? Посоветуйте че-нить?
Имхо, это и есть то что нужно. посмотри в modules, когда прога запускается.
Цитата: Darien
Имхо, это и есть то что нужно. посмотри в modules, когда прога запускается.
Че-то ниче не понял. Давай как-нибудь попонятнее
Multi-threaded DLL (/MD)
Шо не ясно?
Цитата: Alexandoros
Multi-threaded (/MT)
Multi-threaded DLL (/MD)
Шо не ясно?
Multi-threaded DLL (/MD)
Шо не ясно?
Уже ясно, что в 8 студии нет опции Single-threaded (/ML)
|[COLOR=red]Мат[/COLOR]|. СинглСред - это длл для однопотоковых приложений, а никак не для статической/динамической линковки. Для динамической - длл, для статической - не длл.
Цитата: Alexandoros
СинглСред - это длл для однопотоковых приложений, а никак не для статической/динамической линковки. Для динамической - длл, для статической - не длл.
|Removed|. Cкажи, где ты тут увидел ошибку
Цитата: GRIENDERS
Уже ясно, что в 8 студии нет опции Single-threaded (/ML)
Народ. Ведите себя нормально. Образованные же люди.
>>Цитата: Сообщение от GRIENDERS
>>Уже ясно, что в 8 студии нет опции Single-threaded (/ML)
Не в тему ты ее сюда вплел. Ты с линковкой разобрался или нет?
ПС, блин, уже и поматерится нельзя, что за времена????
SingleThread - не DLL
[quote=Grinders]в VC8 CRT компонуется только динамически (Project->Properties->C/C++->Code Generation->Runtime Library->Multi-threaded (/MT). Возможно ли прилинковать CRT статически, т к не во всех виндах есть эти библиотеки.[/quote]
Это и есть статическая компоновка. Динамическая - Multi-threaded DLL. Single-threaded - архаизм, который в VC8 был успешно истреблен (хотя надо было еще в 7 это сделать). Дело в том, что выполнение некоторых операций в многопоточном режиме (например, выделение памяти), требует выполнения дополнительных действий по синхронизации потоков. Поэтому раньше существовало две версии - Multi-threaded с этими операциями и Single-threaded - без них (для оптимизации). Потом многопоточную библиотеку хорошо прооптимизировали, и разницы в производительности почти не стало. Вот её в VC8 и убили. Теперь по-порядку:
Multi-threaded - многопоточная статическая
Multi-threaded Debug - многопоточная статическая с Debug Info
Multi-threaded DLL - многопоточная динамическая
Multi-threaded Debug DLL - многопоточная динамическая с Debug Info.
Цитата: tarekon
SingleThread - не DLL
................................................
Multi-threaded - многопоточная статическая
Multi-threaded Debug - многопоточная статическая с Debug Info
Multi-threaded DLL - многопоточная динамическая
Multi-threaded Debug DLL - многопоточная динамическая с Debug Info.
................................................
Multi-threaded - многопоточная статическая
Multi-threaded Debug - многопоточная статическая с Debug Info
Multi-threaded DLL - многопоточная динамическая
Multi-threaded Debug DLL - многопоточная динамическая с Debug Info.
Спасибо, оч помогло.
Но есть одно НО:
1) Значит ли что установив Multi-threaded прогу можно запустить на любой винде, не опасаясь за наличие библиотек рантайма?
2)Если да, то почему моя прога не запустилась на другом компе, хотя была установлена опция Multi-threaded?