gpt4 book ai didi

c++ - Unresolved 导出类静态常量的外部符号链接(symbolic link)错误(仅限某些项目)

转载 作者:行者123 更新时间:2023-11-28 05:22:43 26 4
gpt4 key购买 nike

我在项目 Utils 中有一个类如下:

数学.h

class __declspec(dllexport) Maths
{
public:
static const double c_epsilon;

...
}

数学.cpp

const double Maths::c_epsilon = DBL_EPSILON;

然后我有(许多)其他项目使用这个类(并使用 c_epsilon 常量)。

几乎所有其他项目都可以毫无问题地构建和链接...但是有几个项目因错误而失败:

LNK2001 unresolved external symbol "__declspec(dllimport) public: static double const Maths::c_epsilon" (__imp_?c_epsilon@Maths@@2NB)

这两个失败的项目都是 Google 测试项目,除了生成可执行文件(而不是 DLL)之外,其设置似乎与所有其他项目相同。

失败的项目肯定会指定 Utils.lib 文件。

我只能想象这是一个项目设置问题(因为其他项目没问题),但我找不到任何不同的设置来解决这个问题。

最佳答案

原来有问题的项目指定了输出文件夹 $(OutDir) 作为查找其他依赖项的路径。这是有问题的,因为在构建的这一点上,输出文件夹仍然包含“旧”lib 文件,这些文件作为构建后步骤复制(可能应该审查的过程)。

“旧”lib 文件来自一个构建,其中常量实际上并未声明为“const”(仅仅是静态的)- 这已被更改,因此导致未解析的外部符号错误。

关于c++ - Unresolved 导出类静态常量的外部符号链接(symbolic link)错误(仅限某些项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41135536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com