いくつかのコードの実行時間を改善する割り当てを受けました。唯一の問題は、そもそも自分のマシンで実行するためにコンパイルすることさえできないということです。試行するたびに、コンパイルの途中で次のように言って停止します。
「`boost::re_detail::put_mem_block(void*)' への未定義の参照 collect2: ld が 1 の終了ステータスを返しました make: * [cpu] エラー 1」
makefile は次のようになります。
SHELL = /bin/bash
OBJECTS = main.o atom.o molecule.o charges.o pdb.o asa.o amino.o chain.o addition.o string_operation.o pdb_peptide.o protein_chain.o residue_atom.o chain_residue.o residue_contact.o atom_grid.o circles.o atom_space_calculations.o
OBJDIR = obj
VPATH = src:src/ext:$(OBJDIR)
CFLAGS = -O3 -Wall -lm -lboost_regex -L/usr/local/boost/lib
HDIRS = src,src/ext,src/qt_redistributable, usr/lib, usr/local/lib, usr/local/lib/include/boost, /usr/local/lib/lib/
IOPTS = $(addprefix -I, $(HDIRS))
cpu : $(addprefix $(OBJDIR)/, $(OBJECTS) $(CPUOBJS))
g++ $(CFLAGS) -o mcpu $^
$(OBJDIR)/%.o : %.cpp
g++ $(CFLAGS) $(IOPTS) -c $< -o $@
clean :
rm obj/*.o $(PROG)
私は Linux Mint x64 を使用しており、ググって調べたことはすべて試しました。ブースト ライブラリ全体を usr/local/lib にインストールし (それが役に立たなかったので明白な理由はありません)、LD PATH を編集しようとしました (私は Linux に非常に慣れていないので、それがうまくいったかどうかわかりません)。ものですが、このことはうまくいかないようです。どんな助けでも感謝します。