Ошибка чтения файла траектории с использованием библиотеки Chemfiles - PullRequest
0 голосов
/ 03 октября 2018

Мне нужно написать фрагмент кода cpp, который будет читать файл траектории (файлы .pdb или .dcd).Я следовал инструкциям на домашней странице библиотеки chemfiles , чтобы прочитать файл.Я получаю сообщение об ошибке с неопределенными символами для архитектуры x86_64 (см. Фрагмент журнала ошибок ниже).

Что я хочу: Возможность чтения файла .dcd / .pdb с помощью библиотеки chemfiles (или любой другойдругая подходящая библиотека для этого) - мне нужно получить доступ к координатам атомов, перечисленных в файле.

Код, который воспроизводит ошибку при компиляции с использованием следующей команды:

#include "/usr/local/include/chemfiles.hpp" //path to library on my mac

int main(int argc, char *argv[]) {
    chemfiles::Trajectory testfile("test.dcd");
    return 1;
}

Кодкоторый успешно компилируется в CLI с помощью следующей команды:

#include "/usr/local/include/chemfiles.hpp" //path to library on my mac

int main(int argc, char *argv[]) {
    // chemfiles::Trajectory testfile("test.dcd");
    return 1;
}

Команда для компиляции программы:

g++-8 -fopenmp trial.cpp -o trial -lchemfiles -L /usr/local/lib
// I am using openmp because my original code is about parallelisation with openmp

Ошибка:

Undefined symbols for architecture x86_64:
  "chemfiles::Trajectory::Trajectory(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, char, 
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&)", referenced from:
  _main in ccnk7agz.o
  "std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >::find(char, unsigned long) const", 
referenced from:
      file_open_info::parse(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&) in libchemfiles.a(Trajectory.cpp.o)
      split_comment(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >&) in 
libchemfiles.a(LAMMPSData.cpp.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >::rfind(char, unsigned long) const", 
referenced from:
      file_open_info::parse(std::__1::basic_string<char,  
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&) in libchemfiles.a(Trajectory.cpp.o)
      chemfiles::SDFFormat::read(chemfiles::Frame&) in 
libchemfiles.a(SDF.cpp.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >::compare(unsigned long, unsigned long, char 
const*, unsigned long) const", referenced from:
      file_open_info::parse(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> > const&, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&) in libchemfiles.a(Trajectory.cpp.o)
      chemfiles::Trajectory::Trajectory(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >, char, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&) in libchemfiles.a(Trajectory.cpp.o)
      chemfiles::FormatFactory::register_format(chemfiles::FormatInfo, 
std::__1::function<std::__1::unique_ptr<chemfiles::Format, 
std::__1::default_delete<chemfiles::Format> > 
(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >, chemfiles::File::Mode, 
chemfiles::File::Compression)>) in libchemfiles.a(FormatFactory.cpp.o)
      chemfiles::Frame::guess_bonds()     in 
libchemfiles.a(Frame.cpp.o)
      chemfiles::FormatInfo::FormatInfo(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >) in 
libchemfiles.a(CSSR.cpp.o)
      chemfiles::FormatInfo::FormatInfo(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >) in 
libchemfiles.a(MMTF.cpp.o)
      chemfiles::MOL2Format::read(chemfiles::Frame&) in 
libchemfiles.a(MOL2.cpp.o)
      ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...