Mac OS X: опит за свързване (ld) срещу рамка

Чета Разширено програмиране на Mac OS X от Марк и Арън. Не мога да накарам един терминален оператор да работи правилно:

cc -g -o useadd -F./Adder/build -framework Adder useadd.m

Това е на страница 45 - Глава 3 (Библиотеки). Както можете да видите, опитвам се да свържа useadd.m с рамка, създадена с помощта на Xcode. Когато изпълня тази команда, получавам тази грешка:

ld: рамката не е намерена Adder

collect2: ld върна 1 изходен статус

Уверих се, че папката /Adder/build съществува в текущата директория. В тази папка има още една: Adder.build, която съдържа рамката. Опитвах всяка възможна комбинация, но линкерът просто не може да намери моята рамка.

Използвам Mac OS X Leopard и мисля, че книгата е публикувана преди Leopard, когато Tiger все още беше най-новата Mac OS.

Можете ли да ми помогнете, моля?


person MoonLight    schedule 21.06.2009    source източник


Отговори (1)


Пътят, определен с опцията -F, трябва да сочи към директория, която съдържа рамката (не в поддиректория). Така че опитайте -F./Adder/build/Adder.build, ако наистина е там. Но обикновено Xcode поставя продукти за компилация в директория с име Debug или Release в директорията за компилация. Adder.build е само за междинни резултати от изграждането.

person Nikolai Ruhe    schedule 21.06.2009
comment
Здравейте, благодаря, като цяло е важно да се уверите, че папката, която сте посочили чрез -F, съдържа рамката (потърсете разширението .framework) - person MoonLight; 22.06.2009