-D UNICODE
으로 컴파일 할 수있는 C++ 프로젝트가 있습니다. 정의 및 사용하여 객체를 보관 그런 ar.exe rcs Cpplib.a *.o
두 개의 .a 파일 보관
내가 그와 함께 컴파일 : 그 정의하지 않고 컴파일
는, 내가 다음 명령을 사용하여 운영자와 아카이브 파일에 추가 오브젝트 파일들을 생성 : ar.exe rcs CpplibU.a *.o
여기서 U는 아카이브가 유니 코드 인 것을 나타냅니다.
Cpplib_x32.a Cpplib_x64.a Cpplib_x32U.a Cpplib_x64U을 : 나는 대신에 링크 할 필요없이 해당 링크 할 수 있도록이 내가 ONE 아카이브로 .A 파일을 모두 결합 할 수있는 방법입니다. a
이제는 x32와 x64를 별도로 연결하는 것을 신경 쓰지 않지만 2 x64와 2 x32를 연결해야하는 것은 다소 짜증이납니다.
x32 및 x64 아카이브를 결합하거나 비 유니 코드 및 유니 코드 아카이브를 결합 할 수있는 방법이 있는지 알고 싶습니다. 둘 다 필요하지 않습니다. 하나 또는.
아이디어가 있습니까? 아니면 모두 4에 연결해야합니까?
"* 링크하지 않아도됩니다. *"어쨌든 모든 링크를 어떻게 연결할 수 있습니까? 그들은 상호 배타적입니다, 네? 32 비트 용으로 컴파일하는 경우 64 개 컴파일로 빌드 된 라이브러리에 연결할 수 없습니다. 유니 코드 용으로 컴파일하는 경우 비 유니 코드 컴파일 된 라이브러리에 링크하는 것은 위험합니다. 릴리스 빌드에서 디버그 용으로 컴파일 된 라이브러리에 링크하거나 그 반대의 경우도 마찬가지입니다. –
아니요. 나는 그들 모두에 링크되어 있고 Mingw/Codeblocks는 그것을 허용한다. 그것은 맞는 것을 사용합니다. 즉 유니 코드가없는 프로젝트를 컴파일하는 경우 Mingw은 비 유니 코드를 사용하고 exe/lib를 bloating하거나 컴파일/런타임 오류를 발생시키지 않고 다른 모든 것을 무시한다는 것을 알고 있습니다. 또한 x32/x64 것들 .. 어떻게해야할지 모르겠지만 잘 컴파일되고 실행됩니다. 단지 많은 링크를 원하지 않았습니다. 대신 네 개의 유니 코드를 포함하는 두 개 또는 네 개를 모두 포함하는 링크 . x64를 연결하지 않고 x32 프로그램을 컴파일하면 컴파일되지 않습니다. – Brandon
"* 어떻게 작동하는지 모르지만 컴파일되고 실행됩니다. *"작동 방식을 모르는 경우 작동하지 않습니다. * 작동합니다. 당신이 아는 것은 당신이 그것을 시도하고 아무 것도 명백히 부러지지 않았기 때문입니다. 나는 GCC가 그것을 다룰 수 없다는 말은 아니다. 나는 다른 시스템 * # define으로 컴파일 된 코드로 링크하는 것이 일반적으로 나쁨으로 이어지는 것이 나의 경험 이었음을 말하고있다. –