fcode 发表于 2023-12-27 08:43 这里面的逻辑我大概理顺了,刚开始学编译型语言,很多概念都不太清楚; 谢谢老师解答! |
拖拽功能是windows实现的。操作系统(windows/linux)实现了标准输入输出通道。 Fortran 的 Read 语句,在不特殊指定通道的情况下,会从标准输入通道获取输入内容。而 write 语句,会在标准输出通道输出内容。 在 windows 上,你把一个文件拖拽到命令行窗口,windows就会自动把这个文件的文件名输入到标准输入通道。 |
本帖最后由 Yjc 于 2023-12-26 18:03 编辑 嗯嗯,我基本理解了,可以直接链接MKL中的静态库来编译产生不依赖于dll的exe可执行程序,链接的方式只需要将主程序和这个静态库一起编译成exe文件就可以了,感谢老师的解答! 您说的不能解除对OpenMP的依赖,我看开发者提供的程序包里面确实有libiomp5md.dll这个动态链接库,应该和您说的是一样的 |
Yjc 发表于 2023-12-26 13:28 MKL中的子程序,是 Intel 编写的。不开源,所以你无法获得源代码。 Intel 提供了2种编译版本: 一种是DLL形式的,并提供导入库。 如果你链接这种导入库,编译产生的exe,就会依赖MKL的dll文件。 另一种是静态库形式的。 如果你链接这种静态库,编译产生的exe,就不会依赖MKL的dll文件。(但似乎不能取消对 OpenMP DLL 的依赖) 通常来说,/MD 链接方式会选择前者,而 /MT 链接方式会选择后者。 博文中看不出用的哪种,默认情况应该是用的前者。 这一问题,也不太影响对博文的理解。 |
本帖最后由 Yjc 于 2023-12-26 13:31 编辑 fcode 发表于 2023-12-26 08:21 谢谢老师解惑; 想请老师判断下我的这个理解对不对,其实MKL数学库中的子程序就是lib库,在具体使用过程中,需要先将主程序编译成.o文件,再将这个主程序文件与所需要的lib静态库链接,就可以生成.exe可执行文件了呢? 这篇博文中调用MKL数学库的方法是不是就是运用了静态链接呢?https://blog.csdn.net/crazyhacking/article/details/7104309 谢谢老师解答! |
他用的静态链接。/MT MKL的静态库代码被链接到exe里面了。 详解:http://dlllose.w.fcode.cn/ |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-4-19 07:55