현재 Linux 용으로 컴파일 된 라이브러리를 사용하여 Mac OS X (10.9)에서 프로그램을 컴파일하려고합니다.C++은 Mac에서 Linux 라이브러리를 사용합니다 (x86_64-apple-darwin의 elf64-x86-64)
이 라이브러리를 사용할 방법이 있습니까? 여기 objdump -f libmylib.a
의 출력은 다음과 같습니다
Hour.o: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
Menu.o: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
Tools.o: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
나는 나의 현재의 아키텍처는
x86_64-apple-darwin13.0.0
알고, 나는 적절한 컴파일러 플래그로,이 컴파일을 만들 수있는 방법이, 궁금. 컴파일 할 때
한가지 더, 여기에 오류가 :
g++ -L /Users/gustavemonod/Desktop/ -o Parking Mother.o Keyboard.o -lncurses -ltcl -lmylib
ld: warning: ignoring file /Users/gustavemonod/lib/libmylib.a, file was built for archive which is not the architecture being linked (x86_64): /Users/gustavemonod/lib/libmylib.a
OS X 용 mylib를 다시 컴파일 할 수 있습니까? –
올바른 컴파일러 플래그 이상을 필요로하며, 작동하는 무언가를 원한다면 더 쉬운 방법이있을 수 있습니다 (예 : os x 용 lib 빌드). 그러나 흥미로운 프로젝트 일 수 있습니다. 나는 llvm 또는 lldb의 일부로 객체 파일 (elf, mach-o 또는 coff)을 일종의 일반적인 표현으로로드 할 수있는 객체 파일 판독기/기록기 라이브러리가 있다고 생각합니다. 그런 다음이를 작동시킬 수 있습니다 다른 형식의 오브젝트 파일을 출력 할 수 있습니다. – bames53
@AlexReynolds 아쉽게도 소스에 액세스 할 수 없어서 **이 라이브러리를 다시 컴파일 할 수 없습니다. –