我有一个可以用-D UNICODE编译的C++项目。
当我在不使用该定义的情况下编译它时,它会创建一堆目标文件,然后使用命令ar.exe rcs Cpplib.a *.o将这些文件添加到.a归档文件中
然后,我使用该定义编译它,并使用以下命令对对象进行归档:ar.exe rcs CpplibU.a *.o
其中U表示归档文件是Unicode归档文件。
有没有一种方法可以将两个.a文件合并到一个归档文件中,以便我可以链接到该归档文件,而不是必须链接到:
Cpplib_x32.a Cpplib_x64.a Cpplib_x32U.a Cpplib_x64U.a
现在我不介意分别链接到x32和x64,但是必须链接到2x64和2x32有点烦人。
我想知道是否有一种方法可以组合x32和x64归档,或者组合非Unicode和Unicode归档。我不是两个都需要。或者。
有什么想法吗?或者我必须链接到所有4个链接?
发布于 2013-05-25 05:46:59
如果符号名称和对象文件名不同,那么您至少可以将所有32位代码和所有64位代码放在它自己的库中。当然,makefile可以很容易地为ASCIIvs.Unicode变体创建名为xxA.o和xxU.o的对象文件。
如果符号名称相同(例如,不带参数且返回类型相同的函数或extern "C"函数,因为它们不是基于参数命名的),则不能使用此方法或拥有多个提供该函数的库,因此提供完整的库列表也不起作用。
https://stackoverflow.com/questions/16743936
复制相似问题