我对 C++ 没有任何重要的经验,但最近不得不参与 C++ 部分的项目(实际上是 apache 模块)。
现在我只是试图构建一些现有的非常遗留代码,当 VC++ 链接器无法在 apache 库中找到一个特定函数时(同时看到其余的函数),我会面临一个非常奇怪的问题。
代码是这样的(取自专门为解决这个问题而构建的简单示例):
ap_rputs(ap_gm_timestr_822(r->pool, time(NULL)), r);
(这应该只打印当前日期,但这并不重要)
我得到的错误是这样的:
error LNK2019: unresolved external symbol _ap_gm_timestr_822@12 referenced in function _hello_handler
现在到奇怪的部分:这个函数实际上存在于我正在链接的库中,但它的符号名称是_ap_gm_timestr_822@8(不是@12,而是@8在最后)。
我试图在 MSVC++ 中使用几乎所有可能的编译器/链接器属性 - 不幸的是,没有效果。
这个问题是否与该库(它是 apache 1.3 发行版的一部分)是使用与我使用的不同/较旧/...编译器构建的事实有关?我目前正在使用 MS VC++ Express 2008。如果是这种情况,有没有人知道可以做些什么来解决这个问题?