Почему может быть unresolved external, если функция есть?
От: Shmj Ниоткуда  
Дата: 28.06.23 23:19
Оценка:
У меня как в анекдоте:

Компьютер не видит принтера, я уже и монитор на него повернул, а он все равно пишет что не видит. Что мне делать?
— Пальцем покажи.


А конкретно. Добавил в проект заголовки и исходники вручную. Ошибка при линковке:

error LNK2001: unresolved external symbol "public: double __cdecl myns1::Class1::Function1(void)const " (?Function1@Class1@myns1@@QEBANXZ)


Эта функция в пространстве имен myns1, класс Class1 точно есть. Сигнатура совпадает.

И еще же сотни функций, которые видны и с ними проблем нет. Однако это и еще с два десятка которые почему-то не видны линкеру, хотя вроде с ними все в порядке.

И вызывается из С++ не из C, думал в этом проблема. В проекте разные расширения файлов — и cc и cpp — вроде не должно быть проблемой?

В общем — из-за чего такое может быть? Может ли быть, если нарушен порядок сборки? Если может быть из-за нарушения порядка сборки — то хотелось бы мин. пример.

Еще думаю — может ли быть, если в проекте вперемешку с и с++ -файлы?
Отредактировано 28.06.2023 23:59 Shmj . Предыдущая версия . Еще …
Отредактировано 28.06.2023 23:29 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.