我得到了一项改善某些代码运行时间的任务。唯一的问题是,我什至无法编译它以首先在我的机器上运行它。每次我尝试时,它都会在编译过程中停止说:
“对`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 中安装了整个 boost 库(没有明显的原因,因为它没有帮助),尝试编辑 LD PATH(我对 Linux 非常陌生,我不知道这是否正确)和很多东西,但这件事似乎没有通过。任何帮助表示赞赏。