error:'memcpy'was not declared in this scope 해결

3164 단어
0. librangetree-v1.2 (C++ 2D 범위 트리) 를 컴파일할 때 에러:'memcpy'was not declared inthis scope 오류가 발생했습니다. 헤더 파일이 포함되지 않았기 때문입니다.
1. 오류는 다음과 같습니다.
[ghui@StuOS librangetree-v1.2]$ pwd
/home/Ghui/Desktop/librangetree-v1.2
[ghui@StuOS librangetree-v1.2]$ ls
bench  COPYING  doc  lrtypes.h  Makefile  ranget.h  test
[ghui@StuOS librangetree-v1.2]$ make
g++  ranget.h
make -C test
make[1]: Entering directory `/home/Ghui/Desktop/librangetree-v1.2/test'
g++ -Wall -Wextra -I ..   simple.cpp ../ranget.h   -o simple
In file included from test.h:8:0,
                 from simple.cpp:1:
../ranget.h: In instantiation of ‘void rangetree<point, data>::mergekids(rangetree<point, data>::pty*&, u32&, rangetree<point, data>::node*, rangetree<point, data>::node*) const [with point = short unsigned int; data = const char; u32 = unsigned int]’:
../ranget.h:417:65:   required from ‘void rangetree<point, data>::build() [with point = short unsigned int; data = const char]’
../ranget.h:114:9:   required from ‘void rangetree<point, data>::finalize() [with point = short unsigned int; data = const char]’
simple.cpp:11:16:   required from here
../ranget.h:535:30: error: ‘memcpy’ was not declared in this scope
      (rmax - r) * sizeof(pty));
                              ^
../ranget.h:539:30: error: ‘memcpy’ was not declared in this scope
      (lmax - l) * sizeof(pty));
                              ^
make[1]: *** [simple] Error 1
make[1]: Leaving directory `/home/Ghui/Desktop/librangetree-v1.2/test'
make: *** [all] Error 2


2. ranget에서.h헤더 파일에 #include 을 추가하면 다음과 같습니다.
#include <cstring>
#ifndef LIBRANGET
#define LIBRANGET

#include "lrtypes.h"


3. 수정 후 다시 컴파일:
[ghui@StuOS librangetree-v1.2]$ make
g++  ranget.h
make -C test
make[1]: Entering directory `/home/Ghui/Desktop/librangetree-v1.2/test'
g++ -Wall -Wextra -I ..   simple.cpp ../ranget.h   -o simple
g++ -Wall -Wextra -I ..   x-search-before-fin.cpp ../ranget.h   -o x-search-before-fin
g++ -Wall -Wextra -I ..   period.cpp ../ranget.h   -o period
g++ -Wall -Wextra -I ..   random.cpp ../ranget.h   -o random
g++ -Wall -Wextra -I ..   individual.cpp ../ranget.h   -o individual
individual.cpp: In function ‘int main()’:
individual.cpp:14:26: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   tree.add(i, i, (u16 *) i);
                          ^
g++ -Wall -Wextra -I ..   identica.cpp ../ranget.h   -o identica
g++ -Wall -Wextra -I ..   mem-too-little.cpp ../ranget.h   -o mem-too-little
g++ -Wall -Wextra -I ..   signed.cpp ../ranget.h   -o signed
Running test simple... 
Running test x-search-before-fin... 
Running test period... 
Running test random... 
Running test individual... 
Running test identica... 
Running test mem-too-little... 
Running test signed... 

	All tests passed!

make[1]: Leaving directory `/home/Ghui/Desktop/librangetree-v1.2/test'
[ghui@StuOS librangetree-v1.2]$ 

By iomato
[email protected]
09:30 - 2013.01.05

좋은 웹페이지 즐겨찾기