make: *** [fusion/calvin_files/fusion/src/FusionCELData.o] 错误 1

make: *** [fusion/calvin_files/fusion/src/FusionCELData.o] Error 1

我试图在我的书 M1 MacOS 12.3.1 上使用 R 4.1.3 和 gcc 11.2.0 构建 affxparser 一个 R 包。

然而建筑运行的错误。 (由于字数限制,我没有放几行开头,想看详情可以点击here

g++-11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I. -Ifusion/calvin_files/array/src -Ifusion/calvin_files/data/src -Ifusion/calvin_files/exception/src -Ifusion/calvin_files/fusion/src -Ifusion/calvin_files/fusion/src/GCOSAdapter -Ifusion/calvin_files/fusion/src/CalvinAdapter -Ifusion/calvin_files/parameter/src -Ifusion/calvin_files/parsers/src -Ifusion/calvin_files/portability/src -Ifusion/calvin_files/template/src -Ifusion/calvin_files/utils/src -Ifusion/calvin_files/writers/src -Ifusion/file -Ifusion/file/TsvFile -Ifusion/portability -Ifusion/util -Ifusion -D_USE_MEM_MAPPING_  -I/opt/R/arm64/include   -fPIC  -mtune=native -g -O2 -Wall -pedantic -Wconversion -Wno-sign-compare -O0 -c fusion/calvin_files/fusion/src/FusionCELData.cpp -o fusion/calvin_files/fusion/src/FusionCELData.o
In file included from fusion/file/CELFileData.h:33,
                 from fusion/calvin_files/fusion/src/GCOSAdapter/GCOSCELDataAdapter.h:30,
                 from fusion/calvin_files/fusion/src/FusionCELData.cpp:24:
fusion/file/FileIO.h: In function 'uint16_t affy_swap16(uint16_t)':
fusion/file/FileIO.h:67:31: warning: conversion from 'int' to 'uint16_t' {aka 'short unsigned int'} may change value [-Wconversion]
   67 |   return ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8));
      |          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from fusion/calvin_files/fusion/src/GCOSAdapter/GCOSCELDataAdapter.h:30,
                 from fusion/calvin_files/fusion/src/FusionCELData.cpp:24:
fusion/file/CELFileData.h: At global scope:
fusion/file/CELFileData.h:91:23: warning: malformed '#pragma options align={mac68k|power|reset}', ignoring [-Wpragmas]
   91 | #pragma options align=packed
      |                       ^~~~~~
fusion/file/CELFileData.h:127:23: error: too many '#pragma options align=reset'
  127 | #pragma options align=reset
      |                       ^~~~~
fusion/calvin_files/fusion/src/FusionCELData.cpp: In member function 'unsigned int affymetrix_fusion_io::FusionCELData::GetFileSize()':
fusion/calvin_files/fusion/src/FusionCELData.cpp:492:22: warning: conversion from 'int64_t' {aka 'long long int'} to 'unsigned int' may change value [-Wconversion]
  492 |   return Fs::fileSize(filename);
      |          ~~~~~~~~~~~~^~~~~~~~~~
make: *** [fusion/calvin_files/fusion/src/FusionCELData.o] Error 1
ERROR: compilation failed for package ‘affxparser’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/affxparser’

除此之外,我还安装了一些其他软件包,这些软件包也 运行 出错。根据一些资料,我在命令行的 bash_profileMakevars 中写了一些代码。 我在 bash_profile

下面添加代码
alias gcc='gcc-11'
alias cc='gcc-11'
alias g++='g++-11'
alias c++='c++-11'

我创建了一个 Makevars

VER=-11
CC=gcc$(VER)
CXX=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/usr/local/Cellar/gcc/11.2.0/lib/gcc/11

我认为 make: ***[fusion/calvin_files/fusion/src/FusionCELData.o] Error 1 可能是问题所在,但我不知道如何解决。希望有人回答。

我通过隐藏上面显示的 Makevarsbash_profile 中的那些代码解决了这个问题,这将我的探查器变成默认的 clang 以探查 affxparser 中的代码。最后,完成这个。