strptime作为未解决的参考

时间:2012-07-25 19:17:44

标签: c++

我的C ++程序存在恼人的问题。我有两个程序(一个主程序和一个帮助它进行测试的小帮助程序),我最近从一个系统转移到另一个系统。在新系统上,我开始在主程序中获取strptime方法的未解决的引用错误。令人讨厌的是,辅助程序也具有相同的strptime方法,并且能够毫无困难地调用它。 Strptime在旧系统上工作,两个系统都运行相同版本的centos。

我已经尝试了明显的事情来确定我的参考未解决的原因。我尝试将我的帮助程序的每个标题复制到我的主程序中,但仍然没有解决。我检查了eclipse编译器/链接器设置,而主程序做了一些更多的事情(添加一些符号,包括一些额外的文件夹,以及libld的链接)没有任何变化似乎解释了为什么一个程序可以识别strptime。我试图创建一个只使用strptime的演示程序,它被认可了。我现在迷路了,为什么我得到错误。任何人都可以建议我可以检查未解决参考的潜在警告吗?

我已经知道我正在链接的time.h包含strptime方法,但是它是在外部定义的。还有另一个.h,time.h文件应该包含哪个给出方法的内联定义?

1 个答案:

答案 0 :(得分:0)

我之前没有见过这个,但这可能会有所帮助:

来自linux手册页......

http://linux.die.net/man/3/strptime

#define _XOPEN_SOURCE /* See feature_test_macros(7) */
#include <time.h>

_XOPEN_SOURCE - 功能测试宏

定义此宏会导致头文件公开定义,如下所示: •使用任何值定义都会公开符合POSIX.1,POSIX.2和XPG4的定义。 •值500或更高还会公开SUSv2(UNIX 98)的定义。

•(由于glibc 2.2)600或更高的值还公开了SUSv3(UNIX 03;即POSIX.1-2001基本规范加上XSI扩展)和C99定义的定义。

•(由于glibc 2.10)700或更高的值另外暴露了SUSv4的定义(即POSIX.1-2008基本规范加上XSI扩展)。