库与 Clang 合作,但不适用于 GCC

Library works with Clang but not with GCC

本文关键字:不适用 适用于 GCC Clang 合作 库与      更新时间:2023-10-16

为什么这个库可以完美地与Apple LLVM 5.0(clang-500.2.79)配合使用,而仅仅包含头文件会导致GCC 4.9出错?

产生错误的最小源文件:

#include <divsufsort.h>
int main() {  
  return 0;
}

我在 GCC 4.9 中遇到的错误:

In file included from main.cpp:1:0:
/usr/local/include/divsufsort.h:74:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:86:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:94:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:108:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:123:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:137:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:152:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API
 ^
/usr/local/include/divsufsort.h:169:1: error: expected constructor, destructor, or type conversion before '(' token
 DIVSUFSORT_API

我怀疑您需要再次在libdivsufsort目录上运行./configure,并为要使用的编译器预设CC环境变量。(CC 表示"c"代码。CXX 用于 c++ 代码)。然后重建。

cd ~/libdivsufsort-2.0.1
make clean
CC=gcc
CXX=g++
./configure
make

尝试此链接:在运行配置时为不同于默认值的编译器进行配置

相关文章: