У меня есть проект на C++, который можно скомпилировать с помощью -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 или объединить архивы Un-Unicode и Unicode. Мне не нужны оба. Или, Или.
Любые идеи или я застрял, чтобы ссылаться на все 4?
"* вместо того, чтобы ссылаться на: *" Как вы могли бы соединить все это? Они взаимоисключающие, да? Если вы компилируете 32-разрядную версию, вы не можете ссылаться на библиотеки, созданные с помощью 64-компиляции. И если вы компилируете для Unicode, ссылка на некомбинированные библиотеки Unicode опасна. Как ссылка на библиотеки, скомпилированные для отладки в сборке релиза или наоборот. –
Нет, сэр. Я связываюсь со всеми, и Mingw/Codeblocks позволяет это. Он использует только тот, который подходит. Другими словами, если я компилирую проект без Юникода, Mingw каким-то образом знает, что использует Un-Unicode, и игнорирует остальные все без раздувания моих exe/lib или метаданных компиляции/ошибок выполнения. Это также делает это для x32/x64. Я не знаю, как, но он компилируется и работает просто отлично. Я просто не хотел ссылаться на это много. Скорее ссылка на ту, которая содержит все четыре в ней или два, которые содержат их юникодные копии , Если я скомпилирую программу x32 без ссылки на x64, она не будет компилироваться. – Brandon
"* Я не знаю, как, но он компилируется и работает просто отлично. *« Если вы не знаете, как это работает, то вы не знаете, что * это работает. Все, что вы знаете, это то, что вы это пробовали, и ничто, по-видимому, не сломалось. Я не говорю, что GCC не может справиться с этим. Я говорю, что мой опыт заключался в том, что ссылка на код, который был скомпилирован с помощью * разных * системных '# define', обычно приводит к плохому. –