我正尝试使用windows上的cbp2make工具从代码块项目文件“.cbp”生成一个makefile。但是生成的Makefile有UNIX格式归档库:cbp2make在Windows上使用“.a”链接库
LIB = libkernerl32.a libuser32.a libgdi32.a
,欲以的mingw32-的make.exe时会造成一些问题,它抱怨说libkernerl32.a是缺少
当我通过代码块编译时,我在构建日志中看到它使用-lkernerl32 luser32 -lgdi32。
我看着在文本编辑器中project.cbp,发现在有: 等..
所以我认为构建代码块时,这些变化从libkernel32.a到-lkernel32,这cbp2make做在生成makefile时似乎没有这样做。
我运行:cbp2make.exe -in project.cbp退房手续的makefile -windows
我怎样才能得到cbp2make有: LIB = -lkernel32 -luser32 而不是 LIB = libkernel32.a libuser32。 a ?
你真的有什么问题?如果将'LIB'行用作构建/打包/ etc等库文件列表,那么'LIB'行是完全合理的。 (假设它们实际存在,并且在Windows上具有这些名称)。链接器的'-l'参数是库的基本名称(即没有'lib'前缀且没有文件扩展名)。因此'-lkernel32'可以使用'libkernel32.so'或'libkernel32.a'(也可能是Windows上的libkernel32.dll),我不确定)。 – 2014-09-04 17:10:32
问题是,“.a”在Windows上不存在,如果我没有弄错,它们通常是“.lib”,所以当我“制造”时它会失败,因为“libkernel32.a”根本不存在于Windows机器,它应该最好是寻找一个“.lib”。我想让cb2make工具用-lkernel32生成makefile,而不是libkernel32.a – 2014-09-04 17:18:21
我的观点是,该行可能不是(尽管它可能)指定链接器的'-l'参数。你可以在链接器中使用一个裸文件名,但很多时候你都不会那样做。我并不是说Windows对Windows没有问题,它可能是非常好的,我只是不确定这是你遇到的实际问题(因为你实际上没有告诉我们这个问题是什么)。 – 2014-09-04 17:20:03