Архивирование двух .a файлов

У меня есть проект C ++, который может быть скомпилирован с -D UNICODE,

Когда я компилирую его без этого Define, он создает кучу объектных файлов, которые я затем добавляю в архивный файл .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?

0

Решение

Если имена символов и имена файлов объектов отличаются, то вы можете иметь по крайней мере весь 32-битный код и весь 64-битный код в собственной библиотеке. И, конечно, make-файл может легко создать объектный файл с именем xxA.o а также xxU.o или что-то подобное для варианта ASCII против UNICODE.

Если имена символов совпадают (например, для функций, которые, например, не принимают параметр и имеют одинаковый тип возвращаемого значения, или extern "C" функции, так как они не искажены по имени на основе параметров), то вы не можете использовать этот метод [или иметь несколько библиотек, которые предоставляют эту функцию, поэтому предоставление целого длинного списка библиотек также не будет работать].

2

Другие решения

Других решений пока нет …