Поделиться через


Ошибка средств компоновщика LNK2011

предварительно компилированный объект, не связанный; Образ может не запускаться

Если вы используете предварительно скомпилированные заголовки, LINK требует, чтобы все файлы объектов, созданные с предварительно скомпилированных заголовков, должны быть связаны. Если у вас есть исходный файл, используемый для создания предварительно скомпилированного заголовка для использования с другими исходными файлами, теперь необходимо включить файл объекта, созданный вместе с предварительно скомпилированным заголовком.

Например, если вы компилируете файл с именем STUB.cpp для создания предварительно скомпилированного заголовка для использования с другими исходными файлами, необходимо связаться с STUB.obj или вы получите эту ошибку. В следующих командных строках строка одна используется для создания предварительно скомпилированного заголовка COMMON.pch, который используется с PROG1.cpp и PROG2.cpp в строках два и три. Файл STUB.cpp содержит только #include строки (те же #include строки, что и в PROG1.cpp и PROG2.cpp) и используются только для создания предварительно скомпилированных заголовков. В последней строке необходимо связать STUB.obj, чтобы избежать LNK2011.

cl /c /Yccommon.h stub.cpp
cl /c /Yucommon.h prog1.cpp
cl /c /Yucommon.h prog2.cpp
link /out:prog.exe stub.obj prog1.obj prog2.obj