смешивание кода, скомпилированного с / MT и / MD

У меня большое тело кода, скомпилированного с / MT (т.е. ожидание статически связаться против CRT). Я должен объединить это со статической сторонней библиотекой, которая была создана с / MD (т.е. ожидание связать CRT динамично).

Теоретически возможно связать два в один исполняемый файл, не перекомпилировав также?

Если я связываюсь с/nodefaultlib:msvcrt, я заканчиваю с небольшим количеством неопределенных ссылок на вещи как __imp__wgetenv. Я испытываю желание попытаться реализовать те функции в своем собственном коде, передавая wgetenv, и т.д. это стоит попробовать, или я буду работать прямо в следующую проблему?

К сожалению, мне Запрещают выбирание легкого варианта упаковки стороннего кода в отдельный DLL :-/

7
задан slowdog 12 August 2010 в 16:25
поделиться

1 ответ

Нет. / MT и / MD являются взаимоисключающими.

Все модули, переданные данному вызову компоновщика, должны быть скомпилированы с одной и той же опцией компилятора библиотеки времени выполнения ( / MD , / MT , / LD ).

Источник

4
ответ дан 7 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: