【问题标题】:Accessing text data files from a static library function从静态库函数访问文本数据文件
【发布时间】:2012-10-31 20:05:44
【问题描述】:

如何启用静态库以提取 ascii 数据文件中可用的数据?

我正在尝试将模型作为库添加到模拟中,其中包含从数据文件中读取数据的函数。我能够从实际完整模拟之外的主程序编译和运行函数,但是一旦我将函数作为库放在主机上进行模拟,数据就不再被读取。

由于数据路径因用户而异,因此我无法提供 ascii 数据文件的绝对数据路径。有没有办法使用 objcopy 将数据文件制作成库中的目标代码,或者如何最好地访问静态库中的数据?

【问题讨论】:

    标签: c++ c fortran fortran77 fortran95


    【解决方案1】:

    有几种解决方案可以在编译时打开位置未知的文件。提示用户输入文件名,包括目录。使用环境变量来指定包含文件的目录... Fortran 2003 有一个内在的获取环境变量的值。从命令行参数获取信息...... Fortran 2003 有一个用于此目的的内在函数。使用所有这些,将文件名构造为字符串变量,并将该变量提供给 OPEN 语句的 FILE 关键字。

    【讨论】:

    • 在使用 f2c 将 fortran 代码转换为 c 时,我需要链接到哪个库才能使用 getcwd_ 和 lnblnk_?
    【解决方案2】:

    我不知道你为什么把 Fortran 标签弄混了,但是在 Fortran 中你:

    告诉代码使用字符串打开你想要的文件

    从中读取

    然后关闭它

    主程序和库没有区别。

    【讨论】:

      【解决方案3】:

      如果你有这样的功能,说:

      void read_data_from_files() { ... }
      

      您需要在 DLL 中将其更改为更像:

      DataObject read_data_from_file(const char* file_path) { ... }
      

      然后适当地调用它。

      你需要设计DataObject

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-23
        • 2011-01-12
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 2015-06-30
        • 2013-01-31
        相关资源
        最近更新 更多