我刚开始学习C++编程,发现我一直在反复编写相同的代码(主要是实用函数)。
因此,我正在尝试创建一个共享库并将其安装到PATH中,以便我可以在需要时使用这些实用函数。
我已经完成了以下工作:
创建一个名为utils.h
的文件,其中包含以下内容:
#include<iostream>
#include<string>
std::string to_binary(int x);
创建一个名为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上并不起作用。是否有人可以建议阅读资源或者提供提示,告诉我如何在OSX机器上编译和设置这些对象的路径?
此外,我想应该有一种方式可以使其跨平台(即编写一组指令(bash脚本)或Makefile),以便我可以轻松地跨平台编译。任何提示吗?
int
转换为由0
和1
构成的字符串更容易,使用std::bitset
:std::string to_binary(int v) { return std::bitset<sizeof(int)*CHAR_BIT>(v).to_string();}
- Jerry Coffinlibuki.so
安装在您的$PATH
中,只需将其放在您的$LD_LIBRARY_PATH
中即可(例如:可能是在您的$HOME/lib/
目录下)。 - Basile Starynkevitch