2010-12-10 2 views
2

Что является самым основным способом создания и использования .dylib в Xcode?Создание и использование простого .dylib

Вот что я до сих пор:

Файл: MyLib.h

#include <string> 

namespace MyLib 
{ 
    void SayHello(std::string Name); 
} 

Файл: MyLib.cpp

#include <string> 
#include <iostream> 

#include "MyLib.h" 

void MyLib::SayHello(std::string Name) 
{ 
    std::cout << "Hello, " << Name << "!"; 
} 

Я получил проект компилировать в динамическая библиотека, но как ее использовать с другими проектами? Я пытался что-то вроде этого:

Файл: MyLibTester.cpp

#include "libMyLib.dylib" 

int main() 
{ 
    MyLib::SayHello("world"); 
    return 0; 
} 

Но это дало мне более 400 ошибок (в основном вдоль линий Stray \123 in program Использование <libMyLib.dylib> дал мне ошибку file not found

ответ

2

Вы не включают файл библиотеки, но заголовок (.h)

Так написать

#include "MyLib.h"

Затем вы должны сообщить компилятору для вашей программы, чтобы связать против dylib файл. Если вы используете Xcode, вы можете просто перетащить файл dylib в свой проект.

0
..

FWIW мой производственный компилятор использует это:

/usr/bin/g++ -c -fno-common -fPIC -Wall \ 
-Wno-invalid-offsetof -Wfatal-errors -fPIC \ 
-O3 -fomit-frame-pointer --inline -DTARGET_BUILD \ 
-I/usr/local/lib/felix/felix-1.1.6rc1/lib/rtl \ 
-I/usr/local/lib/felix/felix-1.1.6rc1/config/target \ 
./hello.cpp -o ./hello.os 

/usr/bin/g++ -fno-common -dynamiclib -O3 \ 
-fomit-frame-pointer --inline \ 
./hello.os -o ./hello.dylib \ 
-L/usr/local/lib/felix/felix-1.1.6rc1/lib/rtl \ 
-lflx_dynamic -lflx_gc_dynamic -lflx_judy_dynamic -lflx_exceptions_dynamic 

to m ake hello.dylib от hello.cpp, вы можете вырезать несущественные биты, которые находятся там только потому, что это то, что там есть в моей системе, и может помочь, если вы захотите позже сделать более продвинутый материал. -fPIC в компиляции является обязательным. The -dynamiclib - это то, что делает dylib.

Смежные вопросы