我从here获得了来自mosquitto C ++的def API_roles_month(request, storeCode):
salesRolesByDay=pd.read_pickle(storeCode+'.pickle')
data2=salesRolessByDay.resample('M').sum().stack([1,3]).reorder_levels([2,0,1]).sum(axis=1).sort_index()
data2.name='Sales'
data3=data2.reset_index()
data4=data3.to_json(orient='records')
return JsonResponse(data4, safe=False)
示例程序。我看过this thread但我不太明白,我对makefile的经验很少。我不确定静态库是否以这种方式工作,但我有两个问题:
是否可以将可执行文件移动到另一台PC并使其仍然运行? (没有在那里安装mosquitto库,可能会复制makefile创建的静态库)
如何将此makefile转换为静态"可移动"可执行
makefile:
temp_conversion
答案 0 :(得分:1)
1)是的,如果他们运行相同的操作系统版本,您可以在一台计算机上编译并在另一台计算机上运行。如果您没有在另一台计算机上安装第三方库,则需要编译该程序的静态版本。
2)要编译程序的静态版本,必须将-static
选项添加到最终构建命令。这指示链接器使用静态版本的库(如果存在),包括标准C ++库。
由于您需要使用-l
选项添加库,因此无法使用您目前所拥有的内容。 -l
选项告诉链接器在库搜索路径中找到一个库(由-L
指定)。您的Makefile是按文件名添加库,因此无论您指定的其他任何选项如何,它都会始终使用该特定版本。
所以要修复你想要的东西
LDFLAGS=-L../../lib -L../../lib/cpp -lmosquittopp -lmosquitto
...它将库所在的两个目录添加到搜索路径,然后说要链接到两个库。然后,如果您拥有这些库的静态版本,则在添加-static
标志时将使用它们。
答案 1 :(得分:0)
您必须获取依赖项的静态版本,此处为libmosquittopp。查找或安装静态库,例如" libmosquittopp.a" (.a表示静态库)。
之后,通过将libmosquitto.so.1
和const itemCurrent = document.createElement('div');
const itemNext = document.createElement('div');
替换为静态版本来链接您的可执行文件。