ltp4j
ltp4j copied to clipboard
mac mvn build error: thread_local/thread-local
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
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
```
--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()