_uint128_t’ was not declared in this scope
2
1
Entering edit mode
10.1 years ago
amal_zine ▴ 10

Hello,

I'm trying to use GATB but a get the error

/usr/include/gatb/tools/math/LargeInt2.pri:34:58: erreur: '__uint128_t' was not declared in this scope

I'm using "g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".

Please help me

Thank you

gatb • 9.0k views
ADD COMMENT
0
Entering edit mode

I've emailed the main GATB developer (edrezen) about this

ADD REPLY
0
Entering edit mode

Hi,

Thank you a lot ...

ADD REPLY
0
Entering edit mode

Thank you for your answer

My system is 64 bit. When I type on terminal grep flags /proc/cpuinfo I get

flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx lm constant_tsc up arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm

lm is corresponding to 64 bit !!!

THANK YOU

ADD REPLY
0
Entering edit mode

To make 100% sure, what's the output of the uname -a command?

ADD REPLY
0
Entering edit mode

That gives

3.2.0-67-generic-pae #101-Ubuntu SMP Tue Jul 15 18:04:54 UTC 2014 i686 i686 i386 GNU/Linux

Thanks

ADD REPLY
1
Entering edit mode

That is a 32 bits Linux even though your CPU supports 64 bits (see http://stackoverflow.com/questions/246007/how-to-determine-whether-a-given-linux-is-32-bit-or-64-bit).

ADD REPLY
1
Entering edit mode
10.1 years ago

If your system is 32-bit, I don't think that type (uint128_t) is available. You might email the developers of GATB with a bug report containing more details about your system.

ADD COMMENT
1
Entering edit mode
10.1 years ago
edrezen ▴ 730

Hello,

GATB uses cmake for building its software, and in your case, it seems that the uint128 availibility is wrongly set to true by cmake. After that, when the "make" command is launched, the compiler tries to use something not present which causes the compilation issue you got.

Just to be sure, could you please launch the cmake command and give us the console output? Note: if you have already launched the cmake command, it should be better to remove all its generated files (like CMakeCache.txt for instance). A simple way is to delete the "build" directory, create a new "build" directory and go into it, and then launch "cmake .."

Erwan Drézen (GATB team)

ADD COMMENT
0
Entering edit mode

Hello drezen,

Thank you for your answer but I didn't use cmake because I used binary code. Rayan proposed that it's because I have a 32-bits system

amal

ADD REPLY
0
Entering edit mode

That was probably a misunderstanding, I don't recall proposing to use the binary release in that case.. I recall advising to develop on a 64 bits machine. Although, in light of Erwan's comment, maybe it will be possible to use a 32 bits machine after all, in case this is a bug related to cmake?

ADD REPLY
0
Entering edit mode

oops!!! c'est un malentendu , je n'ai jamais voulu dire que tu m'as proposé d'utiliser le binaire mais je voulais dire que tu m'as conseillé le 64 bit. je me suis mal exprimée et j'ai pas relu ce que j'avais écrit.

je suis désolée

merci

amal

ADD REPLY
0
Entering edit mode

Absolutely no worries! :)

ADD REPLY
0
Entering edit mode

Hello drezen

I've tried to build it from source code. The cmake .. gives:

Thank you

ADD REPLY
0
Entering edit mode

Ok, so cmake seems to correctly detect that 32 bits system can't use uint128.

By the way, is it possible for you to compile the code on your 32 bits system and tell me if it works ?

Actually, we don't generate GATB binaries for 32 bits systems, so it would useful for us to know if it works.

Erwan

ADD REPLY

Login before adding your answer.

Traffic: 1709 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6