У меня есть класс в проекте Utils следующим образом:
Математика.h
class __declspec(dllexport) Maths
{
public:
static const double c_epsilon;
...
}
Maths.cpp
const double Maths::c_epsilon = DBL_EPSILON;
Затем у меня есть (много) других проектов, которые используют этот класс (и используют константу c_epsilon).
Почти все другие проекты строятся и компонуются без проблем... но пара завершается с ошибкой:
Неразрешенный внешний символ LNK2001 "__declspec(dllimport) public: static double const Maths::c_epsilon" (__imp_?c_epsilon@Maths@@2NB)
Два неудачных проекта являются проектами Google Test и, кроме создания исполняемого файла (вместо DLL), похоже, настроены так же, как и все другие проекты.
Неудачные проекты определенно указывают файл Utils.lib.
Я могу только предположить, что это проблема с настройками проекта (поскольку с другими проектами все в порядке), но я не могу найти какие-либо настройки, которые бы отличались от этой проблемы.