gpt4 book ai didi

c++ - 未解析的外部符号 : @12 vs @8 at the end of symbol name

转载 作者:搜寻专家 更新时间:2023-10-31 00:22:03 24 4
gpt4 key购买 nike

我在 C++ 方面没有任何重要经验,但最近不得不参与 C++ 部分(实际上是 Apache 模块)的项目。

现在我只是试图构建一些现有的非常遗留的代码,当 VC++ 链接器无法在 apache 库中找到一个特定函数(同时看到它们的其余部分)时,我会遇到一个非常奇怪的问题.

代码是这样的(取自专门为解决这个问题而构建的简单示例):

ap_rputs(ap_gm_timestr_822(r->pool, time(NULL)), r);

(这应该只是打印当前日期,但实际上并不重要)

我得到的错误是这样的:

错误 LNK2019:函数 _hello_handler 中引用了未解析的外部符号 _ap_gm_timestr_822@12

现在到了奇怪的部分:这个函数实际上存在于我链接的库中,但是它的符号名称是_ap_gm_timestr_822@8(不是@12,而是@8 最后)。

我尝试使用 MSVC++ 中几乎所有可能的编译器/链接器属性 - 不幸的是没有效果。

这个问题是否与库(它是 apache 1.3 发行版的一部分)是使用与我使用的不同/更旧/...编译器构建的事实有关?我目前正在使用 MS VC++ Express 2008。如果是这种情况,有没有人知道可以做些什么来解决这个问题?

最佳答案

time_t typedef 有两种类型,传统的 32 位会产生 Y2K38 问题,而 64 位会解决该问题。你这里有一个不匹配。

检查您使用的 CRT 的 time.h 头文件,其中应该有一个 #ifdef 在旧版和 64 位版本之间进行选择。如果您仍希望到 2038 年成为一名程序员,请避免使用旧版。

关于c++ - 未解析的外部符号 : @12 vs @8 at the end of symbol name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762033/

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