ubuntu 18.04에서는 apt를 통해 설치하는 cmake, gtest, benchmark의 버전이 낮아서 opentelemetry build에 문제가 있다.
참고로 20.04에서는 아무 문제 없이 자연스럽게 build까지 쉽게 된다.
따라서 이런 dependency를 따로 설치해야 한다. 기본적으로 gcc는 설치 되어 있다고 가정하는데 혹시 안되어 있다면 요렇게!
$ sudo apt install build-essential
(git은 있겠지?)
1. cmake 설치
일단 opentelemetry github에 남아있는 comment를 보면 cmake 3.15 버전에서 진행했다고 하여 일단 cmake 3.16.5를 ㅋ 설치하자.
$ wget https://github.com/Kitware/CMake/archive/refs/tags/v3.16.5.tar.gz
$ tar zxvf v3.16.5.tar.gz
$ cd CMake-3.16.5
$ ./bootstrap --prefix=/usr/local
$ make
$ make install
혹시 아래와 같은 오류가 발생한다면 terminal을 종료하고 다시 띄우면 됨 $ cmake --version CMAKE Error: Could not find CMAKE_ROOT !!! |
2. gtest 설치
apt를 통해 설치하면 1.8 버전이 설치되는데 build할 때 아래와 같은 error가 발생한다.
Scanning dependencies of target span_test [ 10%] Building CXX object api/test/nostd/CMakeFiles/span_test.dir/span_test.cc.o [ 11%] Linking CXX executable span_test CMakeFiles/span_test.dir/span_test.cc.o: In function `SpanTest_PointerCountConstruction_Test::TestBody()': span_test.cc:(.text+0x128f): undefined reference to `testing::internal::DeathTest::Create(char const*, testing::Matcher<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, char const*, int, testing::internal::DeathTest**)' CMakeFiles/span_test.dir/span_test.cc.o: In function `SpanTest_RangeConstruction_Test::TestBody()': span_test.cc:(.text+0x1b75): undefined reference to `testing::internal::DeathTest::Create(char const*, testing::Matcher<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, char const*, int, testing::internal::DeathTest**)' CMakeFiles/span_test.dir/span_test.cc.o: In function `SpanTest_ContainerConstruction_Test::TestBody()': span_test.cc:(.text+0x2fd2): undefined reference to `testing::internal::DeathTest::Create(char const*, testing::Matcher<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, char const*, int, testing::internal::DeathTest**)' collect2: error: ld returned 1 exit status api/test/nostd/CMakeFiles/span_test.dir/build.make:85: recipe for target 'api/test/nostd/span_test' failed make[2]: *** [api/test/nostd/span_test] Error 1 CMakeFiles/Makefile2:2126: recipe for target 'api/test/nostd/CMakeFiles/span_test.dir/all' failed make[1]: *** [api/test/nostd/CMakeFiles/span_test.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 |
$ wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz
$ tar zxvf release-1.11.0.tar.gz
$ cd googletest-release-1.11.0/
$ cmake .
$ cd lib
$ sudo cp *.a /usr/local/lib
googletest-release-1.11.0/googletest/include 요 경로로 이동해서
$ sudo cp -r gtest/ /usr/local/include/
googletest-release-1.11.0/googlemock/include 요 경로로 이동해서
$ sudo cp -r gmock/ /usr/local/include/
3. google benchmark 설치
apt를 통한 버전은 1.3.0, git에서 받자.
$ wget https://github.com/google/benchmark/archive/refs/tags/v1.6.1.tar.gz
$ tar zxvf v1.6.1.tar.gz
$ cd benchmark-1.6.1/
$ cmake -E make_directory "build"
$ cmake -E chdir "build" cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=on -DCMAKE_BUILD_TYPE=Release ../
$ cmake --build "build" --config Release
또는
$ sudo cmake --build "build" --config Release --target install
혹시 "Error: could not load cache" 이런 메시지와 함께 안 될땐 CMakeCache.txt를 삭제 후 cmake -E ~~ 요기부터 다시 시작 |
혹시 외부 접속이 안되는 경우 진행 중 googletest clone 하려고 한다면 문제가 발생하므로 아래와 같이 수정 둘 중 하나만 해도 되는지는 확인 못 함 ./benchmark-1.6.1/WORKSPACE 수정 line 15: https://github.com/google/googletest.git -> https://원하는 내부 repo 주소 ./benchmark-1.6.1/cmake/GoogleTest.cmake.in line 40: https://github.com/google/googletest.git -> https://원하는 내부 repo 주소 |
4. opentelemetry cpp 설치
버전은 1.20
참고: https://github.com/open-telemetry/opentelemetry-cpp/blob/main/INSTALL.md
$ wget https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.2.0.tar.gz
$ tar zxvf v1.2.0.tar.gz
$ cd opentelemetry-cpp-1.2.0
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build . --target all
테스트는
$ ctest
'운영체제 > 리눅스' 카테고리의 다른 글
ubuntu에서 root도 color prompt 사용하기 (0) | 2022.02.15 |
---|---|
CentOS 5.5 발표 (0) | 2010.05.15 |
우분투, 쿠분투, 주분투, 에듀분투 10.04 발표 (0) | 2010.04.30 |
Kubuntu 9.10 정식 발표 (0) | 2009.10.30 |
댓글