【问题标题】:Using spinlocks with gcc在 gcc 中使用自旋锁
【发布时间】:2012-12-01 16:08:12
【问题描述】:

如何在 gcc 4.6.3 中使用 pthread_spinlock_t? 我必须在编译时指定哪些标志? 我使用的是 Ubuntu 12.04!

谢谢

【问题讨论】:

    标签: gcc ubuntu-12.04 spinlock


    【解决方案1】:

    链接时只需添加选项-pthread-lpthread

    选项-std=c99/c11 会将可用的库函数限制为 C99/C11 标准库的函数

    要获得 C99/C11 语言功能/库和 POSIX(以及一些 BSD 和一些 GNU 扩展)API,可以使用 GCC 的 -std=gnu99-std=gnu11 选项。

    【讨论】:

    • 看起来它不起作用,我收到“错误:未知类型名称‘pthread_spinlock_t’”。我必须添加 -D_POSIX_C_SOURCE=200112L。希望有一个更好的方法,而不必使用这个宏定义。
    • 您对 GCC 有其他选择吗?像 `--std=c99" ?
    • @Emanuele,因为在带有 gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 的 Ubuntu 12.01.1 LTS 上,pthread_spinlock_t 和相关函数不需要任何 gcc 命令行选项默认。
    • 我有选项 -std=c99。我应该使用另一个吗?没有这个选项,我不能在代码周围和 for 循环中声明变量......
    • 您也可以使用--std=gnu99
    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多