grpc 和 Intel 编译器
grpc and Intel compiler
我想将 gRPC 用作 C++ 和 Java 组件之间的 bridge/glue(在 Windows 和 Linux 上,尽管目前我更感兴趣在 Windows 解决方案中),但我目前面临的主要障碍是缺乏对英特尔编译器的支持(我猜主要是由于第三方依赖项,例如不支持它的 abseil),它被某些组件使用.通常我会检查所有错误并尝试自己修复它们,但由于我不是 C++ 专家,结果可能不会很好,而且也许还有另一种方法可以绕过该问题。
我所说的“绕过”严格来说是指我不必使用 ICC 编译新组件,只要有另一种方法将我的新 library/code 插入现有的 C++ 项目(已编译与国际刑事法院)。我知道我在这里过于简单化了(并且使用 C++ 从来没有那么容易)但最后应该只是向应用程序依赖项添加另一个 DLL 的问题。我阅读了一些关于混合不同 C++ 编译器的相当陈旧的线程,虽然不推荐它似乎可行,但关于如何做到这一点的建议似乎有点矫枉过正,所以我想知道是否有更简单的方法(只是)链接和使用我的 library/binary 不回退到 COM(也许近年来事情发生了变化,有更好的方法吗?)。
有没有人设法做到类似的事情(并且有没有人设法用 ICC 编译 gRPC - 没有指定任何版本,因为这似乎是一个长期存在的问题)?
提前致谢
windows 上的 Dll 在暴露 API 时需要特别小心。有些库不想打扰,也不正式支持构建为 dll。
我从以前的经验中知道 grpc 不支持构建为 dll。你可以阅读它 here。应该可以编译,但它极有可能会触发可怕的 dll 堆相关错误。这绝对不是生产代码的方式
一个可能的解决方案是静态地link grpc 到你自己的 dll。制作一个隐藏任何 grpc API 的包装器,使用 MSVC 编译它,然后将它用作 ICC 项目中的 dll 依赖项。
我想将 gRPC 用作 C++ 和 Java 组件之间的 bridge/glue(在 Windows 和 Linux 上,尽管目前我更感兴趣在 Windows 解决方案中),但我目前面临的主要障碍是缺乏对英特尔编译器的支持(我猜主要是由于第三方依赖项,例如不支持它的 abseil),它被某些组件使用.通常我会检查所有错误并尝试自己修复它们,但由于我不是 C++ 专家,结果可能不会很好,而且也许还有另一种方法可以绕过该问题。
我所说的“绕过”严格来说是指我不必使用 ICC 编译新组件,只要有另一种方法将我的新 library/code 插入现有的 C++ 项目(已编译与国际刑事法院)。我知道我在这里过于简单化了(并且使用 C++ 从来没有那么容易)但最后应该只是向应用程序依赖项添加另一个 DLL 的问题。我阅读了一些关于混合不同 C++ 编译器的相当陈旧的线程,虽然不推荐它似乎可行,但关于如何做到这一点的建议似乎有点矫枉过正,所以我想知道是否有更简单的方法(只是)链接和使用我的 library/binary 不回退到 COM(也许近年来事情发生了变化,有更好的方法吗?)。
有没有人设法做到类似的事情(并且有没有人设法用 ICC 编译 gRPC - 没有指定任何版本,因为这似乎是一个长期存在的问题)?
提前致谢
windows 上的 Dll 在暴露 API 时需要特别小心。有些库不想打扰,也不正式支持构建为 dll。
我从以前的经验中知道 grpc 不支持构建为 dll。你可以阅读它 here。应该可以编译,但它极有可能会触发可怕的 dll 堆相关错误。这绝对不是生产代码的方式
一个可能的解决方案是静态地link grpc 到你自己的 dll。制作一个隐藏任何 grpc API 的包装器,使用 MSVC 编译它,然后将它用作 ICC 项目中的 dll 依赖项。