如何生成第三方需要的lib文件
本帖最后由 sunkingf 于 2016-8-5 11:36 编辑各位好:
打算编译一个第三方软件需要的lib文件; 这个软件的编译环境设置如下:
compile_fortran=['ifort',
'/c','/DABQ_WIN86_64', '/extend-source', '/fpp',
'/iface:cref', '/recursive', '/Qauto-scalar',
'/QxSSE3', '/QaxAVX',
# '/free',
'/heap-arrays:1',
'/Od', '/Ob0',# <-- Optimization Debugging
'/Zi', # <-- Debugging
'/include:%I']
打算在IVF2013+VS的工程属性页更改command line, 使得二者一致,便于生成上面软件需要的lib文件。但是VS里原来有一些option, 没法删去,我只能在additional option 中加上上面的设置,如图:
但是这样设置生成的lib文件是第三方软件需要的吗? 后来显示:LINK : fatal error LNK1104: 无法打开文件“tbin.lib”。那哪里做错了吗? 请高手指点!谢谢!
建议不要用VS编译,而采用命令行编译。 本帖最后由 sunkingf 于 2016-8-5 17:50 编辑
楚香饭 发表于 2016-8-5 16:47
建议不要用VS编译,而采用命令行编译。
我从没用过命令行,试了下面的:
D:\Program Files (x86)\Intel\Composer XE 2013 SP1\Jiangbin>ifort sub2.f90 /c /DA
BQ_WIN86_64 /extend-source /fpp /iface:cref /recursive /Qauto-scalar /QxSSE3 /Qa
xAVX /heap-arrays:1 /Od /Ob0 /Zi /include:%I
可以将sub2.f90生成sub2.obj;后面又用了 lib sub2.obj /out:sub2.lib
得到了sub2.lib。 然后在软件中运行,通过了,只是出现很多条下面的警告:
warning LNK4204: “C:\Users\mac\AppData\Local\Temp\mac_elasticity_12212\vc100.pdb”缺少引用模块的调试信息;正在链接对象,如同没有调试信息一样
不知道是否有可以改进的地方。。。。
我不清楚你用的什么软件使用 sub2.lib 文件。但是没有调试信息又怎么样?难道你还需要调试 sub2.lib ? 好的,我是最近学的fortran,很多常识都是看的网站上的资料。没问题就好,谢谢! 命令行直接编译 才是主流方式,也是最可控的。
编译成动态库Dll,对于GFortran的编译器,命令行:gfortran.exe -shared *****
另外,针对不同语言的主程序调用(如主程序由fortran,Python,C等写的),库及主程序的写法都需要轻微调整。 不同系列的编译器,混编部分的语法也稍有不同。
页:
[1]