taosdata / taosdata/TDengine

origin/3.0 compilation help wanted

Open
#24,733 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
C
Stars
25.1k
Forks
5k
Avg merge
4d 59m
Merged PRs (30d)
7

Description

Bug Description
origin/3.0编译报错

[ 95%] Performing build step for 'taosadapter'

github.com/taosdata/taosadapter/v3

/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘VTT for std::__cxx11::basic_stringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_assign(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::reserve(unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(std::runtime_error&&)@GLIBCXX_3.4.26’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::resize(unsigned long, char)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘vtable for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::find_first_not_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_S_copy_chars(char*, char const*, char const*)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::operator=(std::runtime_error const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::push_back(char)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::find(char, unsigned long) const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_stringstream<char, std::char_traits, std::allocator >::~basic_stringstream()@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_construct(unsigned long, char)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(std::runtime_error const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘vtable for std::__cxx11::basic_stringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘vtable for std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(std::runtime_error const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >::_M_sync(char*, unsigned long, unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >::~basic_ostringstream()@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘vtable for std::__cxx11::basic_istringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::compare(char const*) const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >::str() const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::find_first_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘VTT for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_istringstream<char, std::char_traits, std::allocator >::~basic_istringstream()@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::random_device::_M_init(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘VTT for std::__cxx11::basic_istringstream<char, std::char_traits, std::allocator >@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::basic_string(char const*, std::allocator const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘operator delete(void*, unsigned long)@CXXABI_1.3.9’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::compare(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::runtime_error::runtime_error(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)@GLIBCXX_3.4.21’未定义的引用
/home/safeuser/taosDB/TDengine/debug/build/lib/libtaos.so:对‘std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_dispose()@GLIBCXX_3.4.21’未定义的引用
collect2: 错误:ld 返回 1

make[2]: *** [tools/taosadapter/src/taosadapter-stamp/taosadapter-build] 错误 1
make[1]: *** [tools/CMakeFiles/taosadapter.dir/all] 错误 2
make: *** [all] 错误 2

复现方式
cd TDengine
mkdir debug
cd debug
cmake .. -DBUILD_TOOLS=false -DBUILD_HTTP=false -DJEMALLOC_ENABLED=false
make

环境
go版本:go version go1.20.13 linux/amd64
Current system: Linux
Current system processor: x86_64
-- The shell is: bash
-- The current OS is CentOS
-- Current platform is amd64
-- Platform arch:amd64
-- DEPS_DIR: x86
C Compiler: /bin/cc (GNU, 10.5.0)
CXX Compiler: /bin/c++ (GNU, 10.5.0)
Will not build taos_tools!
-- build with TSZ enabled
CMake Warning (dev) at cmake/cmake.options:98 (option):
Policy CMP0077 is not set: option() honors normal variables. Run "cmake
--help-policy CMP0077" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.

For compatibility with older versions of CMake, option is clearing the
normal variable 'JEMALLOC_ENABLED'.
Call Stack (most recent call first):
CMakeLists.txt:21 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

-- git log result:70a2674315231c2eafffad45282d6afee8ed839b

-- ============= compile version parameter information start =============
-- version: 3.2.3.0.alpha
-- compatible: 3.0.0.0
-- commit id: 70a2674315231c2eafffad45282d6afee8ed839b
-- build date: 2024-02-04 16:06:58 +0800
-- build type:
-- type: stable
-- cpu: x64
-- os: Linux
-- ============= compile version parameter information end =============

build with s3: ON
-- summary of build options:
Install prefix: /usr/local
Target system: Linux
Compiler:
C compiler: /bin/cc (GNU)
CFLAGS: -std=gnu99 -msse4.2 -Werror -Werror=return-type -fPIC -O3 -Wformat=2 -Wno-format-nonliteral -Wno-format-truncation -Wno-format-y2k

-- GEOS: Version 3.12.0
-- GEOS: C API Version 1.18.0
-- GEOS: JTS port 1.18.0
-- GEOS: Require C++14
-- GEOS: Build astyle OFF
contrib test/rocksdb:ON
-- enable assert core
-- NOT BUILD_DM_MODULE

use taosadapter as httpd, platform is amd64
taosAdapter will use 3.2.3.0.alpha and commit 0587c4d1623df20bfb49df67f01584a3fc95c557 as version
CURRENT SOURCE DIR /home/safeuser/taosDB/TDengine/tools
Building taosAdapter on non-Windows
-- Configuring done
-- Generating done
-- Build files have been written to: /home/safeuser/taosDB/TDengine/debug

Additional Context
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the documented mkdir, cmake, and make commands, then inspect CMakeLists.txt and the tools/taosadapter build step. Compare the compiler and linker environment with the libtaos.so GLIBCXX errors shown in the log. Done means the origin/3.0 build completes successfully on the stated CentOS environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, c, centos, cmake, go, linux
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.