首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨平台库使用特定于平台的依赖项

跨平台库使用特定于平台的依赖项
EN

Stack Overflow用户
提问于 2021-08-07 22:12:30
回答 1查看 131关注 0票数 0

我很好奇如何能够创建一个具有特定于平台的依赖关系的跨平台库(用CMake构建)。

例如,假设我使用GLEW或OpenGL创建了一个库,在开发期间我下载了它们的windows适应性(例如glew_x64-windowsopengl_x64-windows ),我如何确保我的库仍然具有我想要的跨平台可移植性?

可能我误解了“后缀”windows的意思,或者我只是对整个跨平台库的理解很差,但如果不是这样,我的问题就成立了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-07 23:18:09

最佳选择:通常,您只需通过套餐请求cmake为您找到库。这将得到已经安装在正在进行编译的系统上的特定于平台的库版本。在这种情况下,你不必担心自己在哪个平台上。

不太好的选择:如果您已经下载了针对所有目标系统的平台特定库的预构建,那么您可以为每个平台创建一个进口图书馆。像这样的东西应该可以用,但我还没有测试过它:

代码语言:javascript
复制
if(WIN32)
  add_library(glew STATIC IMPORTED)
  set_property(TARGET glew PROPERTY
             IMPORTED_LOCATION "path/to/libglew-windows.a")
  target_include_directories(glew SYSTEM AFTER PUBLIC "path/to/windows/include")
else()
  add_library(glew STATIC IMPORTED)
  set_property(TARGET glew PROPERTY
             IMPORTED_LOCATION "path/to/libglew-linux.a")
  target_include_directories(glew SYSTEM AFTER PUBLIC "path/to/linux/include")
endif()

# Then you can use it as a platform-independant target:
target_link_libraries(my_app PRIVATE glew)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68696476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档