我刚刚开始用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/
g++ -Wall -fPIC -c utils.cpp
但是,正如上面的链接是用于Linux的,它并不真正在OSX上工作。 有人可能会build议阅读资源或提示如何在OSX机器上编译和设置path中的对象吗?
此外,我猜测应该有一种方法,我可以使这个跨平台(即写一套指令(bash脚本)或一个Makefile),以便我可以用它来跨平台轻松编译。 有什么提示?
使用-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