У меня есть класс в проекте Utils следующим образом:Нерешенные внешняя ошибка символ ссылка для статических констант экспортируемого класса (только некоторые проекты)
Maths.h
class __declspec(dllexport) Maths
{
public:
static const double c_epsilon;
...
}
Maths.cpp
const double Maths::c_epsilon = DBL_EPSILON;
Я тогда (много) и других проектов, которые используют этот класс (и использовать c_epsilon гр onstant).
Почти все проекты строительства и связь без проблем ... но пара завершаться с ошибкой:
LNK2001 unresolved external symbol "__declspec(dllimport) public: static double const Maths::c_epsilon" ([email protected]@@2NB)
В двух провальных проектах являются проектами Испытательного Google и другие, чем производить исполняемый файл (вместо DLL), похоже, настроены так же, как и все другие проекты.
Неудачные проекты определенно определяют файл Utils.lib.
Я могу только представить себе, что это проблема с настройкой проекта (так как другие проекты прекрасны), но я не могу найти какие-либо настройки, которые бы отличались, чтобы решить проблему.
Вы определяете зависимость между двоичными файлами в решении? –
@ КириллКобелев. Да, я. – grae22
После этого AFAIK вам не нужно указывать файл .lib. Файлы Lib должны использоваться для библиотек DLL, которые не являются частью решения. –