现在我想使用一些特定于linux的函数(clock_gettime()和相关函数).当我尝试使用clock_gettime()时,我在Mac OS X上遇到链接器错误,因此我认为它仅在linux上可用.我准备在.c文件中引入有条件编译的代码,以便在linux上使用clock_gettime(),在Mac OS上使用普通的旧时钟(). (顺便说一句,我打算使用#include< unistd.h>和#if _POSIX_TIMERS> 0作为预处理程序表达式,除非有人有更好的选择.)
当谈到CMakeLists.txt文件时,事情变得棘手.仅在跨平台CMake项目中的linux构建下引入与特定于linux的API的链接的首选方法是什么?
注意:此问题的早期版本包含对glibc的引用,这些内容过于具体且令人困惑.问题实际上是在跨平台CMake项目中使用特定于linux的API和库的正确方法.
解决方法 从您的示例中抽象出来,并回答这个问题:How to use linux-specific APIs and librarIEs only on linux builds with
CMake?
CMake提供了numerous useful constants,您可以检查以确定您正在运行的系统:
if (${UNIX}) # *nix-specific includes or actionselsif (${WIN32}) # windows-specific includes or actionselsif (${APPLE}) # ...endif (${UNIX})总结
以上是内存溢出为你收集整理的如何仅在使用CMake的Linux版本上使用特定于Linux的API和库?全部内容,希望文章能够帮你解决如何仅在使用CMake的Linux版本上使用特定于Linux的API和库?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)