场景 1:我想将一个新库 (libA) 链接到我的程序中,libA 是使用带有 -std=gnu99 标志的 gcc 构建的,而我的程序的当前库是在没有该选项的情况下构建的(假设 gcc 使用 -std= gnu89 默认)。
场景 2:libB 是使用一些预处理器标志构建的,如“-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED”以启用 XPG4 功能,例如 struct msghdr 的 msg_control 成员。虽然 libC 不是在没有这些预处理器标志的情况下构建的,但它与 libB 相关联。
链接使用不同预处理器标志或 C 标准构建的库是否错误?我关心的主要是结构定义不匹配。
谢谢。