ltp4j icon indicating copy to clipboard operation
ltp4j copied to clipboard

mac mvn build error: thread_local/thread-local

Open airlsyn opened this issue 7 years ago • 2 comments

Error occurred when compile c++ code, ltp/thirdparty/jsoncpp/src/lib_json/json_reader.cpp

For Linux ‘thread_local’ does not name a type

just try to use a compiler that supports c++11

For Mac thread-local storage is not supported for the current target

ENV

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0

how to solve it? Any help will be appreicated

airlsyn avatar Aug 29 '18 10:08 airlsyn

For mac,

  • first: brew upgrade llvm --with-clang
  • second: replace the default gcc, g++ with newer version

new error occurred

duplicate symbol _main in: ltp4j/target/nar/obj/x86_64-MacOSX-gpp/CMakeCXXCompilerId.d5bef524.o
ld: 1 duplicate symbol for architecture x86_64
```

airlsyn avatar Aug 30 '18 04:08 airlsyn

--with-gxx-include-dir=/usr/include/c++/4.2.1

GCC 版本太低了,至少要求4.8

Work around

修改文件thirdparty/jsoncpp/src/lib_json/json_reader.cpp

将 line 49

thread_local static int stackDepth_g = 0;  // see readValue()

修改为:

static __thread int stackDepth_g = 0;  // see readValue()

hailiang-wang avatar Mar 07 '19 09:03 hailiang-wang