用C ++为OSX创build共享库

我刚刚开始用C ++编程,而且我意识到我一直不得不一遍又一遍地编写相同的代码(主要是实用程序函数)。

所以,我试图创build一个共享库并将其安装在PATH中,以便我可以在需要时使用这些效用函数。

以下是我迄今为止所做的:

用以下内容创build一个文件utils.h : –

 #include<iostream> #include<string> std::string to_binary(int x); 

使用以下内容创build一个文件utils.cpp : –

 #include "utils.h" std::string to_binary(int x) { std::string binary = ""; while ( x > 0 ) { if ( x & 1 ) binary += "1"; else binary += "0"; x >>= 1; } return binary; } 

按照这里提到的步骤: – http://www.techytalk.info/c-cplusplus-library-programming-on-linux-part-two-dynamic-libraries/

  • 创build库对象代码: g++ -Wall -fPIC -c utils.cpp

但是,正如上面的链接是用于Linux的,它并不真正在OSX上工作。 有人可能会build议阅读资源或提示如何在OSX机器上编译和设置path中的对象吗?

此外,我猜测应该有一种方法,我可以使这个跨平台(即写一套指令(bash脚本)或一个Makefile),以便我可以用它来跨平台轻松编译。 有什么提示?

Solutions Collecting From Web of "用C ++为OSX创build共享库"

使用-dynamiclib选项在OS X上编译动态库:

 g++ -dynamiclib -o libutils.dylib utils.cpp 

然后在您的客户端应用程序中使用它:

 g++ client.cpp -L/dir/ -lutils 

您发布的链接是使用C和C编译器。 由于您正在构建C ++:

 g++ -shared -o libYourLibraryName.so utils.o