# An error occurs when building the GEVServer tutorial in C++ with CMake

**URL:** <https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482>\
**Category:** C-style API\
**Created:** [August 30, 2021, 3:37pm UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482 "2021-08-30T15:37:14Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [August 30, 2021, 3:37pm UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/1 "2021-08-30T15:37:14Z")

</div>

After running CMake on the GEVServer tutorial on the Raspberry Pi 4 with a 64bit ARM OS, the following error comes up when running the make command.

```auto
[100%] Linking CXX executable QmlGevServer
/usr/bin/ld: /opt/cvb/lib/libCVGevServer.so: undefined reference to `std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream()@GLIBCXX_3.4.26'
/usr/bin/ld: /opt/cvb/lib/libCVGevServer.so: undefined reference to `pow@GLIBC_2.29'
/usr/bin/ld: /opt/cvb/lib/libCVGevServer.so: undefined reference to `std::__cxx11::basic_ostringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_ostringstream()@GLIBCXX_3.4.26'
/usr/bin/ld: /opt/cvb/lib/libCVCore3D.so: undefined reference to `exp@GLIBC_2.29'
/usr/bin/ld: /opt/cvb/lib/libCVGevServer.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()@GLIBCXX_3.4.26'
/usr/bin/ld: /opt/cvb/lib/libCVGevServer.so: undefined reference to `log@GLIBC_2.29'
/usr/bin/ld: /opt/cvb/lib/libCVCDriver.so: undefined reference to `std::__cxx11::basic_stringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_stringstream()@GLIBCXX_3.4.26'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/QmlGevServer.dir/build.make:187: QmlGevServer] Error 1
make[1]: *** [CMakeFiles/Makefile2:77: CMakeFiles/QmlGevServer.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

```

---

<div class="post-metadata">

**Author:** ![usernv](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/usernv/32/637_2.png) [@usernv](https://forum.commonvisionblox.com/u/usernv)\
**Post date:** [August 31, 2021, 7:59am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/2 "2021-08-31T07:59:00Z")

</div>

Defining the following macro **before** including any standard library headers should fix your problem: `#define _GLIBCXX_USE_CXX11_ABI 0`

---

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [August 31, 2021, 11:41am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/3 "2021-08-31T11:41:39Z")

</div>

@usernv I implemented the “define” statement in the “backend.hpp” and still get the same error.

---

<div class="post-metadata">

**Author:** ![usernv](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/usernv/32/637_2.png) [@usernv](https://forum.commonvisionblox.com/u/usernv)\
**Post date:** [September 1, 2021, 10:06am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/4 "2021-09-01T10:06:26Z")

</div>

What compiler are you using?

---

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [September 1, 2021, 10:08am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/5 "2021-09-01T10:08:48Z")

</div>

I use the gcc (Debian 8.3.0-6) 8.3.0.

---

<div class="post-metadata">

**Author:** ![usernv](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/usernv/32/637_2.png) [@usernv](https://forum.commonvisionblox.com/u/usernv)\
**Post date:** [September 1, 2021, 10:12am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/6 "2021-09-01T10:12:11Z")

</div>

which GCC version? Could you try to use an older GCC?

---

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [September 1, 2021, 10:14am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/7 "2021-09-01T10:14:51Z")

</div>

~ $ gcc --version  
gcc (Debian 8.3.0-6) 8.3.0

Which version should I install?

---

<div class="post-metadata">

**Author:** ![usernv](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/usernv/32/637_2.png) [@usernv](https://forum.commonvisionblox.com/u/usernv)\
**Post date:** [September 1, 2021, 10:48am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/8 "2021-09-01T10:48:55Z")

</div>

You can try  
GCC 9 for Ubuntu 20.04 (and corresponding CVB) or  
GCC 7 for Ubuntu 18.04.

---

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [September 1, 2021, 10:51am UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/9 "2021-09-01T10:51:09Z")

</div>

Okay thanks, I will try both.

---

<div class="post-metadata">

**Author:** ![ASchmitt](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/aschmitt/32/827_2.png) [@ASchmitt](https://forum.commonvisionblox.com/u/ASchmitt)\
**Post date:** [September 1, 2021, 12:10pm UTC](https://forum.commonvisionblox.com/t/an-error-occurs-when-building-the-gevserver-tutorial-in-c-with-cmake/1482/10 "2021-09-01T12:10:41Z")

</div>

With GCC 7 and the CVB installation for ARM Ubuntu 18.04 it works now.  
Thanks for your help 🙂
