1

我有一堆使用 signal.h 和其中的 siginfo 结构的开源库。不幸的是,我得到了一个新桌面,我需要将内核更新到 3.8(从 3.7)来解决我的硬件的一些问题(从 ubuntu 12.04 -> 13.04)。

随着新内核的更新,系统上的 signal.h 将其 siginfo 结构更改为 siginfo_t。不幸的是,我不能将库中的结构重命名为 siginfo_t,因为它是来自第 3 方的维护库。

我试图解决这个问题:

  1. typedef 新的 siginfo_t

    #ifndef siginfo
        typedef siginfo_t siginfo;
    #endif
    

    问题:仍然会出现大量错误。很确定 struct 的更改不向后兼容。

  2. 等待图书馆的新更新..虽然没有任何工作

不知道我能做什么。如果我回退到 3.7 内核,我的声卡和显卡驱动程序不会 100% 受支持,这会使我的开发环境难以工作。

4

1 回答 1

-1

你不想 typedef 有点不同吗?例如:

typedef struct siginfo siginfo_t;

在我看来,您写下的 typedef 不会对 struct siginfo 做任何事情。

于 2013-06-28T16:21:15.143 回答