linux - 错误:未在此范围内声明“对齐”并且错误:在“(”之前应为“)”
问题描述
我正在尝试编译 bwa-gasal2 并在遇到此问题时
If you donot see anything below this line then there is nothing to "make"
g++ -c -g -Wall -Wno-unused-function -O2 -msse4.2 -std=c++11 -fpermissive -DHAVE_PTHREAD -DUSE_MALLOC_WRAPPERS -I./GASAL2/include/ src/bwamem.c -o ./obj/bwamem.o
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
#define __aligned__ __attribute__((aligned(16)))
^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
from src/vector_filter.h:16,
from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
typedef int __m64_u __attribute__ ((__vector_size__ (8), __may_alias__, __aligned__ (1)));
~ ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
#define __aligned__ __attribute__((aligned(16)))
^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
from src/vector_filter.h:16,
from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
~ ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
#define __aligned__ __attribute__((aligned(16)))
^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
from src/vector_filter.h:16,
from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
~ ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
#define __aligned__ __attribute__((aligned(16)))
^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
from src/vector_filter.h:16,
from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
~ ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
In file included from src/kstring.h:8,
from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_opt_t* mem_opt_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_opt_t*’ [-fpermissive]
# define calloc(n, s) wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:52:6: note: in expansion of macro ‘calloc’
o = calloc(1, sizeof(mem_opt_t));
^~~~~~
src/bwamem.c: In function ‘smem_aux_t* smem_aux_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t*’ [-fpermissive]
# define calloc(n, s) wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:110:6: note: in expansion of macro ‘calloc’
a = calloc(1, sizeof(smem_aux_t));
^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
# define calloc(n, s) wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:111:15: note: in expansion of macro ‘calloc’
a->tmpv[0] = calloc(1, sizeof(bwtintv_v));
^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
# define calloc(n, s) wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:112:15: note: in expansion of macro ‘calloc’
a->tmpv[1] = calloc(1, sizeof(bwtintv_v));
^~~~~~
src/bwamem.c: In function ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’:
src/bwamem.c:202:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < a->mem1.n; ++i) {
~~^~~~~~~~~~~
src/bwamem.c:217:43: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
if (end - start < split_len || p->x[2] > opt->split_width)
~~~~~~~~^~~~~~~~~~~~~~~~~~
src/bwamem.c:220:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < a->mem1.n; ++i)
~~^~~~~~~~~~~
src/bwamem.c:221:66: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
if ((uint32_t) a->mem1.a[i].info - (a->mem1.a[i].info >> 32) >= opt->min_seed_len)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/bwamem.c:236:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < a->mem1.n; ++i)
~~^~~~~~~~~~~
src/bwamem.c:164:26: warning: unused variable ‘max’ [-Wunused-variable]
int i, k, x = 0, old_n, max, max_i;
^~~
src/bwamem.c:164:31: warning: unused variable ‘max_i’ [-Wunused-variable]
int i, k, x = 0, old_n, max, max_i;
^~~~~
src/bwamem.c:167:6: warning: unused variable ‘min_miss_match’ [-Wunused-variable]
int min_miss_match = 0;
^~~~~~~~~~~~~~
src/bwamem.c:168:19: warning: unused variable ‘w’ [-Wunused-variable]
bwt_mem_width_t *w;
^
In file included from src/kstring.h:8,
from src/bwamem.c:11:
src/bwamem.c: In function ‘int test_and_merge(const mem_opt_t*, int64_t, mem_chain_t*, const mem_seed_t*, int)’:
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
# define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:374:16: note: in expansion of macro ‘realloc’
c->seeds = realloc(c->seeds, c->m * sizeof(mem_seed_t));
^~~~~~~
src/bwamem.c: In function ‘void mem_print_chain(const bntseq_t*, mem_chain_v*)’:
src/bwamem.c:409:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < chn->n; ++i) {
~~^~~~~~~~
src/bwamem.c: In function ‘mem_chain_v mem_chain(const mem_opt_t*, const bwt_t*, const bntseq_t*, int, const uint8_t*, void*)’:
src/bwamem.c:438:19: warning: invalid conversion from ‘const mem_opt_t*’ to ‘mem_opt_t*’ [-fpermissive]
mem_collect_intv(opt, bwt, len, seq, aux);
^~~
src/bwamem.c:163:41: note: initializing argument 1 of ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’
static void mem_collect_intv(mem_opt_t *opt, const bwt_t *bwt, int len, const uint8_t *seq, smem_aux_t *a) {
~~~~~~~~~~~^~~
src/bwamem.c:439:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0, b = e = l_rep = 0; i < aux->mem.n; ++i) { // compute frac_rep
~~^~~~~~~~~~~~
src/bwamem.c:442:15: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘const int’ [-Wsign-compare]
if (p->x[2] <= opt->max_occ)
~~~~~~~~^~~~~~~~~~~~~~~
src/bwamem.c:450:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < aux->mem.n; ++i) {
~~^~~~~~~~~~~~
src/bwamem.c:455:18: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘const int’ [-Wsign-compare]
step = p->x[2] > opt->max_occ ? p->x[2] / opt->max_occ : 1;
~~~~~~~~^~~~~~~~~~~~~~
src/bwamem.c:456:25: warning: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘bwtint_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = count = 0; k < p->x[2] && count < opt->max_occ; k += step, ++count) {
~~^~~~~~~~~
In file included from src/kstring.h:8,
from src/bwamem.c:11:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
# define calloc(n, s) wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:476:17: note: in expansion of macro ‘calloc’
tmp.seeds = calloc(tmp.m, sizeof(mem_seed_t));
^~~~~~
src/bwamem.c:493:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < chain.n; ++i)
~~^~~~~~~~~
src/bwamem.c: In function ‘int mem_chain_flt(const mem_opt_t*, int, mem_chain_t*)’:
src/bwamem.c:536:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = 0; k < chains.n; ++k) {
~~^~~~~~~~~~
src/bwamem.c:555:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
if (k == chains.n) {
~~^~~~~~~~~~~
src/bwamem.c:560:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < chains.n; ++i) {
~~^~~~~~~~~~
src/bwamem.c: In function ‘void mem_mark_primary_se_core(const mem_opt_t*, int, mem_alnreg_t*, int_v*)’:
src/bwamem.c:717:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = 0; k < z->n; ++k) {
~~^~~~~~
src/bwamem.c:732:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
if (k == z->n)
~~^~~~~~~
In file included from src/kstring.h:8,
from src/bwamem.c:11:
src/bwamem.c: In function ‘void mem_chain2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const uint8_t*, const mem_chain_t*, mem_alnreg_v*, int*, int*, gpu_batch*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint64_t*’ {aka ‘long unsigned int*’} [-fpermissive]
# define malloc(s) wrap_malloc( (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1087:8: note: in expansion of macro ‘malloc’
srt = malloc(c->n * 8);
^~~~~~
src/bwamem.c:1098:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < av->n; ++i) // test whether extension has been made before
~~^~~~~~~
src/bwamem.c:1119:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
if (i < av->n)
~~^~~~~~~
src/bwamem.c:1226:40: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (curr_gpu_batch->n_target_batch < curr_gpu_batch->gpu_storage->host_max_target_batch_bytes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1246:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1253:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1260:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1267:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1211:8: warning: unused variable ‘j’ [-Wunused-variable]
int j;
^
src/bwamem.c:1048:12: warning: unused variable ‘rid’ [-Wunused-variable]
int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
^~~
src/bwamem.c:1048:17: warning: unused variable ‘max_off’ [-Wunused-variable]
int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
^~~~~~~
src/bwamem.c:1049:39: warning: unused variable ‘tmp’ [-Wunused-variable]
int64_t l_pac = bns->l_pac, rmax[2], tmp, max = 0;
^~~
src/bwamem.c:1051:11: warning: unused variable ‘rseq’ [-Wunused-variable]
uint8_t *rseq = NULL;
^~~~
src/bwamem.c: In function ‘void mem_aln2sam(const mem_opt_t*, const bntseq_t*, kstring_t*, bseq1_t*, int, const mem_aln_t*, int, const mem_aln_t*)’:
src/bwamem.c:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = tmp; i < str->l; ++i) // replace TAB in the comment to SPACE
~~^~~~~~~~
src/bwamem.c: In function ‘void mem_reg2sam(const mem_opt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, mem_alnreg_v*, int, const mem_aln_t*)’:
src/bwamem.c:1621:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = l = 0; k < a->n; ++k) {
~~^~~~~~
src/bwamem.c:1649:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = 0; k < aa.n; ++k)
~~^~~~~~
src/bwamem.c:1651:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = 0; k < aa.n; ++k)
~~^~~~~~
src/bwamem.c:1657:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (k = 0; k < a->n; ++k)
~~^~~~~~
src/bwamem.c: In function ‘void mem_gasal_fill(gpu_batch*, int, int, char*, int)’:
src/bwamem.c:1679:54: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1697:54: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c: In function ‘void mem_align1_core(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, void*, int, int, mem_alnreg_v*, int, gasal_gpu_storage_v*)’:
src/bwamem.c:1803:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < chn.n; ++i) {
~~^~~~~~~
src/bwamem.c:1851:16: warning: unused variable ‘cur’ [-Wunused-variable]
gpu_batch *cur = &gpu_batch_arr[gpu_batch_arr_idx];
^~~
src/bwamem.c:1857:33: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
fprintf(stderr, "Thread no. %d is here with internal batch size %d, regs.n %d \n", tid, internal_batch_size, regs.n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
In file included from src/bntseq.h:31,
from src/bwamem.h:5,
from src/bwamem.c:12:
src/bwamem.c:1865:38: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
assert(kv_size(regs_vec) == batch_processed);
src/bwamem.c:1902:91: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
if (gpu_batch_arr[internal_batch_idx].no_extend == 1) fprintf(stderr, "I am here too as well with regs.n %d\n", regs.n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
src/bwamem.c:1903:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for(i = 0; i < regs.n; ++i){
~~^~~~~~~~
src/bwamem.c:1923:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < regs.n; ++i) {
~~^~~~~~~~
src/bwamem.c:1928:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < regs.n; ++i) {
~~^~~~~~~~
In file included from src/kstring.h:8,
from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_aln_t mem_reg2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const char*, const mem_alnreg_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
# define malloc(s) wrap_malloc( (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1970:13: note: in expansion of macro ‘malloc’
query = malloc(l_query);
^~~~~~
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘uint32_t*’ {aka ‘unsigned int*’} [-fpermissive]
# define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2027:19: note: in expansion of macro ‘realloc’
a.cigar = realloc(a.cigar, 4 * (a.n_cigar + 2) + l_MD);
^~~~~~~
src/bwamem.c: In function ‘void mem_process_seqs(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, int64_t, int, bseq1_t*, const mem_pestat_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘mem_alnreg_v*’ [-fpermissive]
# define malloc(s) wrap_malloc( (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2104:14: note: in expansion of macro ‘malloc’
w.regs = malloc(n * sizeof(mem_alnreg_v));
^~~~~~
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t**’ [-fpermissive]
# define malloc(s) wrap_malloc( (s), __FILE__, __LINE__, __func__)
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2112:13: note: in expansion of macro ‘malloc’
w.aux = malloc(opt->n_threads * sizeof(smem_aux_t));
^~~~~~
src/bwamem.c:2116:28: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
kt_for(opt->n_threads, worker1, &w, /*(opt->flag & MEM_F_PE) ? n >> 1 : */n); // find mapping positions
^~~~~~~
In file included from src/bwamem.c:12:
src/bwamem.h:197:43: note: initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2136:28: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
kt_for(opt->n_threads, worker2, &w, (opt->flag & MEM_F_PE) ? n >> 1 : n); // generate alignment
^~~~~~~
In file included from src/bwamem.c:12:
src/bwamem.h:197:43: note: initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:57: bwamem.o] Error 1
据我所知,问题的根源来自我的 gcc 编译的较新版本,但我不确定是这样做还是因为其他错误。我的 gcc 版本是:
$ gcc --version
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8.4.0-3ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 8.4.0 (Ubuntu 8.4.0-3ubuntu2)
有人可以指出我的 gcc 是否导致问题以及如何解决它或问题来自其他地方?谢谢
解决方案
您的代码是错误的,因为它定义了一个以双下划线开头的宏,__
并且 C++ 标准保留了所有包含双下划线的标识符供内部使用。
可以在此处找到完整的 C++ 保留标识符集:https ://en.cppreference.com/w/cpp/language/identifiers
因此,您必须将__aligned__
您定义的宏重命名为其他名称;例如:
#define align_16 __attribute__((aligned(16)))
__aligned__
然后将代码中的所有用途更改为align_16
.
推荐阅读
- python - 如何使用 with 语句动态打开文件以进行写入
- spring-boot - 在 Spring Boot Security Basic Authentication 中,为什么默认密码没有被自定义密码覆盖
- vb6 - F1作为shell的论据?
- ecmascript-6 - 在模板文字中添加 JS 函数
- python - 如何从给定索引中剪切列表
- android - Android TV box MediaPlayer info/warning (8004, 0), error (1, -33554485)
- typescript - 为什么打字稿在使用逻辑运算符时将联合类型解析为可能的空字符串?
- javascript - 使用 innerHTML 设置文档 ID 时 Firestore 重复(空)文档 ID
- share - 是否有用于在 RingCentral Glip 中共享附件的 API?
- linux - 复制或移动结合源路径和目标路径,以避免重复长路径