質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

Q&A

解決済

1回答

791閲覧

makeでのビルドが途中で止まってしまう

n2022

総合スコア39

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

0グッド

0クリップ

投稿2022/04/02 01:39

やりたいこと と困っていること
バイオインフォマティクス系のソフトウェア(https://sourceforge.net/projects/samtools/files/samtools/0.1.17/)の
インストールを試みていますが、以下のようなエラーが出てしまい、samtoolsという実行ファイルが形成されません。

自分で試したこと
解決法をさがして検索しているのですが、なかなかうまくいかず、こちらで質問させていただきました。
OSはmacOS 10.13.6, 10.15.7です。

installには、makeでインストールするように書いてあり、走り出すのですが、途中で止まります。
clang:error: とありますが、which clangで、/Users/usr/miniconda3/bin/clangは出ます。

clang

1Target: x86_64-apple-darwin19.6.0 2Thread model: posix 3InstalledDir: /Users/usr/miniconda3/bin

linkerコマンドというのは、私にはよく分かりません。(brewでinstallはできませんでした。)

よろしくお願いいたします。

$ make (略) 3 warnings generated. gcc -c -g -Wall -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1 -I. bam2depth.c -o bam2depth.o gcc -g -Wall -O2 -o samtools bam_tview.o bam_plcmd.o sam_view.o bam_rmdup.o bam_rmdupse.o bam_mate.o bam_stat.o bam_color.o bamtk.o kaln.o bam2bcf.o bam2bcf_indel.o errmod.o sample.o cut_target.o phase.o bam2depth.o -Lbcftools libbam.a -lbcf -lcurses -lm -lz Undefined symbols for architecture x86_64: "___ks_insertsort_heap", referenced from: _ks_combsort_heap in libbam.a(bam_sort.o) _ks_introsort_heap in libbam.a(bam_sort.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [samtools] Error 1 make: *** [all-recur] Error 1

インストール注意書き compilationの途中で止まってしまう状態です。

System Requirements =================== SAMtools depends on the zlib library <http://www.zlib.net>. Version 1.2.3+ is preferred and with 1.2.3+ you can compile razip and use it to compress a FASTA file. SAMtools' faidx is able to index a razip-compressed FASTA file to save diskspace. Older zlib also works with SAMtools, but razip cannot be compiled. The text-based viewer (tview) requires the GNU ncurses library <http://www.gnu.org/software/ncurses/>, which comes with Mac OS X and most of the modern Linux/Unix distributions. If you do not have this library installed, you can still compile the rest of SAMtools by manually changing: `-D_CURSES_LIB=1' to `-D_CURSES_LIB=0' at the line starting with `DFLAGS=', and comment out the line starting with `LIBCURSES='. Compilation =========== Type `make' to compile samtools. If you have zlib >= 1.2.2.1, you can compile razip with `make razip'. Installation ============ Copy `samtools', `bcftools/bcftools' and other executables/scripts in `misc' to a location you want (e.g. a directory in your $PATH). You may also copy `samtools.1' and `bcftools/bcftools.1' to a directory in your $MANPATH such that the `man' command may find the manual.

現在のファイルの中身 samtools.1は展開されておらず、samtoolsというファイルまでできるはずです。

AUTHORS bam_color.c bam_rmdupse.c errmod.o libbam.a COPYING bam_color.o bam_rmdupse.o examples misc ChangeLog bam_endian.h bam_sort.c faidx.c phase.c INSTALL bam_import.c bam_sort.o faidx.h phase.o Makefile bam_import.o bam_stat.c faidx.o razf.c Makefile.mingw bam_index.c bam_stat.o kaln.c razf.h NEWS bam_index.o bam_tview.c kaln.h razf.o bam.c bam_lpileup.c bam_tview.o kaln.o razip.c bam.h bam_lpileup.o bamtk.c khash.h sam.c bam.o bam_mate.c bamtk.o klist.h sam.h bam2bcf.c bam_mate.o bcftools knetfile.c sam.o bam2bcf.h bam_md.c bedidx.c knetfile.h sam_header.c bam2bcf.o bam_md.o bedidx.o knetfile.o sam_header.h bam2bcf_indel.c bam_pileup.c bgzf.c kprobaln.c sam_header.o bam2bcf_indel.o bam_pileup.o bgzf.h kprobaln.h sam_view.c bam2depth.c bam_plcmd.c bgzf.o kprobaln.o sam_view.o bam2depth.o bam_plcmd.o bgzip.c kseq.h sample.c bam_aux.c bam_reheader.c cut_target.c ksort.h sample.h bam_aux.o bam_reheader.o cut_target.o kstring.c sample.o bam_cat.c bam_rmdup.c errmod.c kstring.h samtools.1 bam_cat.o bam_rmdup.o errmod.h kstring.o win32```

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/04/02 01:52

Doesn't compile on Mountain Lion · Issue #15 · lh3/samtools · GitHub https://github.com/lh3/samtools/issues/15 によれば、 > but clang is the default compiler for OSX 10.8 (and latest FreeBSD too). One simple (and correct) solution is to make the inlined function static. とのことで、修正方法が書かれています。当方では動作確認が取れませんのでご参考までに。。。
n2022

2022/04/02 05:38

ありがとうございます。引き続き質問が必要な状況です。 下記内容で、インライン機能をスタティックにする、というのは、 diff --git a/ksort.h b/ksort.h index fa850ab..f8d8c4c 100644 --- a/ksort.h +++ b/ksort.h @@ -141,7 +141,7 @@ typedef struct { tmp = *l; *l = l[i]; l[i] = tmp; ks_heapadjust_##name(0, i, l); \ } \ } \ - inline void __ks_insertsort_##name(type_t *s, type_t *t) \ + static inline void __ks_insertsort_##name(type_t *s, type_t *t) \ { \ type_t *i, *j, swap_tmp; \ for (i = s + 1; i < t; ++i) \ 上記内容を直接makefileに書き込む、のでしょうか。それとも、static_textなどの名称で同一フォルダ内に保存し、makeコマンドの前に何か適切なコマンドを実行しておくのでしょうか。基本的なところからで申し訳ありませんが、よろしくお願いします。patchの仕方についても、教えていただけますとありがたく存じます。何かサイトを指定していただければ、頑張れるかもしれません。
melian

2022/04/02 06:21

ソースコードに ksort.h というファイルがあるかと思います。そのファイルの 144 行目の行頭に static という文字列を追加して保存してから再度 make を実行してみて下さい。
n2022

2022/04/02 08:48

ありがとうございました。書き加えた後のmakeで、エラーなく実行ファイルができて、パスを通してwhichで認識できるところまで行けました。10.15.7でもやってみます。途中で止まるだけでなく、何度もWarningが出てきたのですが、それも出てきませんでした。 ファイルの意味も少しずつ理解できるようになりましたが、まだ分からないところがたくさんあります。今後ともよろしくお願いいたします。
guest

回答1

0

自己解決

自己解決ではありませんが、同じフォルダ内のソースコードファイルをgithubに出ている方法で、static

を加筆することで、3日以上進まなかったところが解決しました。ありがとうございました。

投稿2022/04/02 12:20

n2022

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問