Ошибки LNK2020 и LNK1120 в старом классе в старом работающем проекте, так как добавлен другой проект, включающий тот же класс - PullRequest
0 голосов
/ 15 октября 2011

Я получаю неожиданные ошибки компоновщика после рефакторинга моего решения от 1 до 3 проектов.В этом первом примере я получаю два неразрешенных токена, например

ошибка LNK2020: неразрешенный токен (0600000C) Mynamespace.MyClass :: unresolvedStaticFunc

ошибка LNK2020: неразрешенный токен (0600000C) Mynamespace.MyClass :: unresolvedOtherStaticFunc

фатальная ошибка LNK1120: 2 неразрешенных внешних элемента

Я не затрагивал этот класс в своем рефакторинге.Оба метода объявлены как статические в заголовке, но не в теле (файл cpp).

Я перепроверил свои ошибки, и новый проект компилируется нормально, но вынуждает старый сломаться при связывании.

Я думаю, что мне нужно добавить файлы в мои новые проекты, но теперь они кажутся хорошо разделенными на свои собственные папки.Возможно, еще один проект для общего класса?Я добавляю, как мне показалось, простую функцию, и количество моих проектов уже утроилось.

1 Ответ

1 голос
/ 15 октября 2011

Вы не должны быть #include заголовочными файлами, содержащими управляемые типы в нескольких проектах.Вместо этого в новом проекте добавьте ссылку на сборку для старого проекта;таким образом, информация о типе будет собрана из метаданных .NET, встроенных в сборку старого проекта.

...