Mac Lion не может создать библиотеку, используя «ar», «без символов» - PullRequest
1 голос
/ 22 ноября 2011

У меня есть исходный код C ++ в IO.h и IO.cpp, и я хочу создать статическую библиотеку libvcf.a. Затем я использую следующую команду:

g++ -c IO.cpp

Нет проблем.

Но,

ar -r libvcf.a IO.o

/usr/bin/ranlib: file: libvcf.a(IO.o) has no symbols

Я сейчас использую Mac OSX Lion с версией g ++ ниже:

g++ -v
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.1~1/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.1~1/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)

Похоже, что я могу использовать те же команды в Linux, но не в Mac. Я тоже погуглил и не повезло. Любые предложения здесь? Спасибо.

1 Ответ

4 голосов
/ 22 ноября 2011

Я думаю, что полная команда должна быть:

ar rcs libvcf.a IO.o

c означает «создать архив».

...