covid-19 こと、新型コロナウィルスのお陰様でリモートで仕事すること多いと思います。
ゼロトラストなどと、VPNなんて古いって言われるかもしれませんが小規模な会社ではコスパが良い選択肢です。
会社にあった、NanoPI M4 というなかなか高性能なSoC搭載のSingle Board Computer に SoftEherを入れた時のエラーについてです。
構築方法の詳細については、別の記事に記載しようかと思います。
エラー内容
make 時に以下のエラー
1 2 3 4 5 6 |
cc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o cc: error: unrecognized command line option ‘-m64’ Makefile:101: recipe for target 'tmp/objs/Mayaqua/Cfg.o' failed make: *** [tmp/objs/Mayaqua/Cfg.o] Error 1 |
-m64 は、インテルの64bit用の命令を使ってコンパイルする命令。今回は、ARM系のcpuなのでこのオプションは使えない。
./configure で作成された、Makefile ファイルを直接いじって-m64とい部分を全て削除か、
一番近そうなオプションで、cpuの種類を指定する。
NanoPI M4なら
-march=armv8-a+crypto+crc
Makefile は以下のように編集した
$ diff Makefile.org Makefile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
65c65 < OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char -m64 --- > OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char -march=armv8-a+crypto+crc 67c67 < OPTIONS_LINK_DEBUG=-g -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz --- > OPTIONS_LINK_DEBUG=-g -fsigned-char -march=armv8-a+crypto+crc -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz 69c69 < OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 --- > OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -march=armv8-a+crypto+crc 71c71 < OPTIONS_LINK_RELEASE=-O2 -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz --- > OPTIONS_LINK_RELEASE=-O2 -fsigned-char -march=armv8-a+crypto+crc -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz |
-m64 を、-march=armv8-a+crypto+crc に変更した。