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命令选项吗?
由于
答案 0 :(得分:0)
消息"在意外状态下收到错误回调"由LogError()调用发出,LogError
宏最终uses预处理器表达式__FILE__
用于引用源文件的路径。
根据that answer,表达式__FILE__
扩展为path,它在编译器的命令行中传递。
不幸的是,在将源文件传递给编译器时,CMake always uses absolute paths。因此,在日志中生成相对路径有没有简单方法。
您可以编写一个包装器,它将绝对路径转换为relative并调用编译器。