как построить восточную библиотеку

Недавно я пытался собрать библиотеку eastl в Linux 3.10 x86_64, но не удалось.

https://github.com/electronicarts/EASTL

do имеет веб-страницу «Компиляция исходников» здесь:

https://github.com/electronicarts/EASTL/blob/master/CONTRIBUTING.md

следуйте инструкциям и получите libEASTL.a, ar -t libEASTL.a get:

allocator_eastl.cpp.o
assert.cpp.o
fixed_pool.cpp.o
hashtable.cpp.o
intrusive_list.cpp.o
numeric_limits.cpp.o
red_black_tree.cpp.o
string.cpp.o
thread_support.cpp.o

Затем крошечный тестовый источник:

#include <EASTL/vector.h>
#include <EASTL/fixed_vector.h>
int main()
{
eastl::fixed_vector<int,10,true> v ;
int iarr[10]  ;
for(int idx=0;idx<10;idx++){
iarr[idx] = idx + 1 ;
v.push_back( iarr[idx] ) ;
}
}

скомпилировал это:

g ++ —std = c ++ 11 -O2 test1.cpp -I / home / mars / tools / EASTL-master / include -I / home / mars / tools / EASTL-master / test / packages / EABase / include / Common /home/mars/tools/EASTL-master/thelib/libEASTL.a -o test1.exe

получит ошибку ссылки:

неопределенная ссылка на `operator new [] (unsigned long, char const *, int, unsigned int, char const *, int) ‘

Библиотека eastl должна иметь простой способ создания и включения заголовочных файлов,
Я просто скучаю по этому, любые советы приветствуются.

Редактировать :

После того, как я добавлю эту новую функцию, ошибка ссылки исчезнет !!!

void* operator new[](size_t size, const char* pName,
int flags, unsigned debugFlags, const char* file, int line)
{
;
}

так что остался только один вопрос: мне нужно правильно написать эту новую функцию !!!!
чтобы сделать это, любой документ может дать мне подсказку ?!

Edit2:

По данным этого сайта:

https://wuyingren.github.io/howto/2016/02/11/Using-EASTL-in-your-projects/

void* operator new[](size_t size, const char* pName, int flags, unsigned     debugFlags, const char* file, int line)
{
return malloc(size);
}

void* operator new[](size_t size, size_t alignment, size_t alignmentOffset, const char* pName, int flags, unsigned debugFlags, const char* file, int line)
{
return malloc(size);
}

тогда работа сделана.

1

Решение

Но рекомендуется на оригинальном сайте это >> https://github.com/electronicarts/EASTL/blob/master/doc/CMake/EASTL_Project_Integration.md#setting-up-your-code

void* operator new[](size_t size, const char* name, int flags, unsigned debugFlags, const char* file, int line)
{
return new uint8_t[size];
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector