2010-12-10 50 views
2

在Xcode中創建和使用.dylib的最基本方法是什麼?創建和使用簡單的.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 hello.cpp中的ake hello.dylib,你可以去掉那些非必要的位,因爲這是我係統中的內容,如果你稍後想做更高級的東西,可能會有所幫助。編譯中的-fPIC是強制性的。 -dynamiclib是什麼使dylib。