【问题标题】:External Library Files in IBM Rhational RhapsodyIBM Rhational Rhapsody 中的外部库文件
【发布时间】:2018-06-23 15:30:13
【问题描述】:

在 Rhapsody 中可以在哪里添加额外的库/对象文件以避免在构建代码时出错?

例如:scanf/Printf 命令不会显示任何错误,因为它能够访问相应的库。是否有 Rhapsody 寻找图书馆的特定位置?我们可以在那里添加我们的外部库吗?

【问题讨论】:

    标签: rhapsody


    【解决方案1】:

    您是否尝试在 Rhapsody 中相关组件的“功能”对话框的 Libraries 字段中添加库?

    【讨论】:

    • 是的,我做到了。但是,它没有用。我正在为 Linux 环境编译它。
    • 在生成的makefile中,你看到你在“LIBS="开头的行中指定的库了吗?
    • 我无法生成 make 文件,因为它显示了一条错误消息; functionXYZ() 有多个定义。但是,我仔细检查了我的 C 文件中没有多个定义。我正在研究 Linux 环境,并且有我希望在我的 Rhapsody 项目中使用的函数的对象文件/C 文件
    【解决方案2】:

    你得到什么样的错误?

    如果是编译器错误,则需要添加“包含路径:”来查找库的标头。这可以在 Rhapsody 组件的“常规”选项卡中完成。

    如果是链接器错误,那么您需要在 Rhapsody 组件的“常规”选项卡的“库:”部分中指定您的库。在“属性”选项卡中,您可以指定库位置的路径。

    【讨论】:

    • 这是一个链接器错误。所以,我确实在库路径中添加了我的对象文件以使其可以访问它。
    • 谢谢。我能够添加外部库。但是,对于另一个库,它显示一个错误:functionXYZ() 有多个定义。首先在这里定义.....
    • 那么你需要弄清楚哪些库包含这个功能。函数 XYZ() 的名称应该提示您两次包含哪个库。您能否在未来提供更详细的信息以更好地响应您的问题。那些通用的公式对你帮助不大。
    • 对不起,一般的表述。我有两个文件。一个用于访问 GPIO 引脚,另一个用于 Sensor。我为两者创建了库文件。当我将 GPIO 的库文件添加到 Rhapsody 的 Path 列中,并为 Linux 编译它时,它没有显示错误。但是对 Sensor 文件执行相同操作会显示以下错误:/home/pi/rhp_projects/ExtFiles/NewAttempt2906/libRhp.a: In function _fini': :(.fini+0x0): multiple definition of _fini' /usr/lib/gcc/arm-linux-gnueabihf/6/ ../../../arm-linux-gnueabihf/crti.o:(.fini+0x0): 首先在这里定义,还有更多。这是系统文件,我没有在任何地方定义它们。
    • 你的意思是你只添加了传感器库(没有 GPIO 库)并且你得到这个链接器错误?愚蠢的问题:你的 Sensor 库是否包含 main 函数?
    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多