0

我有一个可以用-D UNICODE.

当我在没有定义的情况下编译它时,它会创建一堆目标文件,然后我使用以下命令将它们添加到 .a 存档文件中:ar.exe rcs Cpplib.a *.o

然后我使用该定义编译它并使用以下方法归档对象:ar.exe rcs CpplibU.a *.o

其中 U 声明档案是 Unicode 档案。

有没有一种方法可以将两个 .a 文件合并到一个存档中,以便我可以链接到该文件,而不必链接到:

Cpplib_x32.a Cpplib_x64.a Cpplib_x32U.a Cpplib_x64U.a

现在我不介意分别链接到 x32 和 x64,但必须链接到 2 个 x64 和 2 个 x32 有点烦人。

我想知道是否有一种方法可以结合 x32 和 x64 档案或结合非 Unicode 和 Unicode 档案。我两个都不需要。两者任一。

有什么想法,还是我不得不链接到所有 4 个?

4

1 回答 1

2

如果符号名称和目标文件名不同,那么您至少可以在它自己的库中拥有所有 32 位代码和所有 64 位代码。当然,makefile 可以轻松地为 ASCII 与 UNICODE 变体创建一个名为xxA.o和或类似的目标文件。xxU.o

如果符号名称相同(例如,它们将用于不带参数且具有相同返回类型的函数或extern "C"函数,因为它们不是基于参数的名称),那么您可以'不要使用这种方法[或有多个库提供该功能,因此提供一长串库也行不通]。

于 2013-05-24T21:46:59.150 回答