【问题标题】:absolute path in static compiled library removing静态编译库中的绝对路径删除
【发布时间】:2018-05-22 07:59:04
【问题描述】:

对不起,我知道它是重复的,它类似于question,但只有一个答案不满足目标:)

uamqp 库的编译非常简单。在eclipse中链接我的项目时,我最终得到了2个静态库。在运行期间,如果发生错误,错误消息会显示静态库最初编译的路径。我得到这样的东西:

Error: Time:Tue May 22 09:04:45 2018 File:/home/hostname/azure-uamqp-c/src/saslclientio.c Func:on_underlying_io_error Line:243 Error callback received in unexpected state

我对错误消息没有任何问题。问题仅在发生错误时显示路径 /home/hostname/azure-uamqp-c/saslclientio.c

请问如何编译 uamqp 库,这样里面就没有存储绝对路径?它是我必须配置的 cmake 命令选项吗?

谢谢

【问题讨论】:

    标签: c cmake


    【解决方案1】:

    LogError() 调用发出消息“Error callback received in unexpected state”,LogError 宏最终 uses 预处理器表达式 __FILE__ 用于引用源文件的路径。

    根据that answer,表达式__FILE__扩展为路径,在编译器的命令行中传递。

    不幸的是,CMake always uses absolute paths 将源文件传递给编译器时。因此,没有简单的方法在日志中生成相对路径。

    你可以在编译器周围编写一个包装器,它将绝对路径转换为相对路径并调用编译器。

    【讨论】:

    • 我实际上在 / (root) 下创建了一个符号链接,以便不显示我的 /home/hostname,感谢您的澄清!
    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多