【问题标题】:Can I add a dynamic address in a makefile?我可以在生成文件中添加动态地址吗?
【发布时间】:2020-02-11 05:05:46
【问题描述】:

我正在使用以下命令创建一个共享库: abaqus make library=myCode directory='/usr/abaqus'

在目录(/usr/abaqus/ 文件夹)内,我有一个 abaqus 环境文件来包含其他共享库。这是 env 文件中的 link_sl 参数: link_sl='LINK /nologo %B /usr/Dassault Systemes/SimulationServices/V6R2019x/linux_a64/code/lib/ABQSMAOdbApi.so /usr/Dassault Systemes/SimulationServices/V6R2019x/linux_a64/code/lib/ABQSMAOdbCore.so ucrt.so'

现在,这里是主要问题。 ABQSMAOdbApi.so 文件的位置在每台计算机中都不同。如何在此处使用动态地址或参数值来解决此问题。

【问题讨论】:

    标签: makefile shared-libraries abaqus


    【解决方案1】:

    欢迎来到 Stack Overflow。你没有给我们太多的合作机会。在不知道你如何使用这个变量,或者你如何合并 env 文件,或者你想如何控制地址变量的情况下,我可以建议:

    API_DIR = /usr/Dassault Systemes/SimulationServices/V6R2019x/linux_a64/code/lib
    
    link_sl='LINK /nologo  %B $(API_DIR)/ABQSMAOdbApi.so /usr/Dassault Systemes/SimulationServices/V6R2019x/linux_a64/code/lib/ABQSMAOdbCore.so ucrt.so'
    

    【讨论】:

    • 感谢您的回复。我遇到的问题是您在此处提到的这个 API_DIR 地址在每个系统中都不同。我需要创建一个例程,首先找到作为参数的位置,然后用这个 API_DIR 替换它,因为我只提供编译后的文件。然后,当用户使用这个库时,我的例程首先查找正确的位置,然后替换它,然后运行代码。
    【解决方案2】:

    Make 允许您使用以下方法设置默认值:

    foo?=bar

    如果在命令行中,你不给foo一个变量make将它设置为bar

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多