簡體   English   中英

在CentOS 6.x 64位OS中構建C ++項目時出錯

[英]Errors in building C++ project in CentOS 6.x 64 bit OS

我在64位CentOS 6.x中構建C ++項目時遇到一些錯誤。 該項目已在32位CentOS 6.x中成功構建。 盡管關於這些類型的錯誤有一些線索,但我需要更多說明。 錯誤是-

/usr/include/sys/types.h:198: error: conflicting declaration ‘typedef long int int64_t’
./Headers/PALsystypes.h:22: error: ‘int64_t’ has a previous declaration as ‘typedef long  long int int64_t’
/usr/include/sys/types.h:204: error: conflicting declaration ‘typedef long unsigned int u_int64_t’
./Headers/PALsystypes.h:23: error: ‘u_int64_t’ has a previous declaration as ‘typedef long long unsigned int u_int64_t’

而且還有更多類似以下的錯誤-

d5-x86_64.o md5-x86_64.s
md5-x86_64.s: Assembler messages:
md5-x86_64.s:41: Error: 0xd76aa478 out range of signed 32bit displacement
md5-x86_64.s:50: Error: 0xe8c7b756 out range of signed 32bit displacement
md5-x86_64.s:68: Error: 0xc1bdceee out range of signed 32bit displacement
md5-x86_64.s:77: Error: 0xf57c0faf out range of signed 32bit displacement
md5-x86_64.s:95: Error: 0xa8304613 out range of signed 32bit displacement
md5-x86_64.s:104: Error: 0xfd469501 out range of signed 32bit displacement
md5-x86_64.s:122: Error: 0x8b44f7af out range of signed 32bit displacement
md5-x86_64.s:131: Error: 0xffff5bb1 out range of signed 32bit displacement

請給我任何對此職位的反饋。

typedef int foo;
typedef float foo;

瞧,有一個最小的例子,它與32位或64位無關。 問題在於某些頭文件比其他已經聲明的文件聲明符號,並且這樣做的方式不兼容。 我要怪PALsystypes,它沒有特別聲明int64_t的業務,它應該來自系統的stdint.h。

關於匯編器警告,請考慮使用無符號整數,包括變量和常量(0x123u是無符號的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM