1

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

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

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

4

3 回答 3

3

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

于 2012-10-31T22:24:42.707 回答
1

我不知道您为什么将 Fortran 标签遮蔽,但在 Fortran 中您:

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

从中读取

并关闭它

主程序或库之间没有区别。

于 2012-10-31T22:09:21.573 回答
0

如果您有类似的功能,请说:

void read_data_from_files() { ... }

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

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

然后适当地调用它。

你需要设计DataObject.

于 2012-10-31T20:42:57.393 回答