Closed isu-kim closed 2 years ago
해당 문제의 경우 저와 같은 경우 다음과 같이 해서 해결했습니다. 테스트 환경은 개인 서버 2대와 유시환 교수님의 assam.dankook.ac.kr 의 solid 서버 총 3대에서 다음의 내용으로 컴파일 시 debug 빌드가 되는걸 확인했습니다.
(각 개인의 환경에 따라서 결과물이 다를 수 있습니다)
CMakeList.txt
에
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} –g –pg")
옵션을 제거합니다. (즉 처음에 git clone
으로 받아놓은 레포지토리의 CMakeList.txt
를 그대로 사용합니다)
CMakeList.txt
가 바뀌었는지 잘 모르겠고, 찝찝하시다면 다음의 명령어로 새로 공식 CMakeList.txt
파일을 받을 수 있습니다
wget "https://raw.githubusercontent.com/google/leveldb/main/CMakeLists.txt"
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-pg .. && cmake --build .
만일 빌드를 하며, 빨간글짜 또는 에러 문구가 안나오면 정상 빌드라고 보시면 될것 같습니다.
uftrace
를 써봅시다)
uftrace ./db_bench --benchmarks="fillseq" --num=1
-pg
옵션을 빼고 컴파일 하면 나오는 화면입니다.
uftrace: ./cmds/record.c:1625:check_binary
ERROR: Can't find 'mcount' symbol in the './db_bench'.
It seems not to be compiled with -pg or -finstrument-functions flag.
You can rebuild your program with it or use -P option for dynamic tracing.
... 너무 길어서 생략 ...
------------------------------------------------
fillseq : 195508.000 micros/op; 0.0 MB/s
# DURATION TID FUNCTION
[2246758] | _GLOBAL__sub_I_leveldb::test::RandomString() {
[2246758] | __static_initialization_and_destruction_0() {
205.266 us [2246758] | std::ios_base::Init::Init();
0.343 us [2246758] | __cxa_atexit();
208.411 us [2246758] | } /* __static_initialization_and_destruction_0 */
209.542 us [2246758] | } /* _GLOBAL__sub_I_leveldb::test::RandomString */
[2246758] | _GLOBAL__sub_I_main() {
[2246758] | __static_initialization_and_destruction_0() {
0.168 us [2246758] | std::ios_base::Init::Init();
0.173 us [2246758] | __cxa_atexit();
... 너무 길어서 생략 ...
해당 이슈의 경우 다음주 화요일 스터디 전에 close 하도록 하겠습니다.
2주차 강의자료 43페이지에서 나온 db_bench의 debug 모드로 빌드할 때
CMakeList.txt
에옵션을 추가한 이후 다음의 명령어로 컴파일시
위와 같이 build 에러가 나오는 경우가 있습니다.