简体   繁体   中英

Using armadillo in atom with script

I there a way to compile a c++ file using script in atom that uses armadillo? I couldn't find anything related to it.

I already installed armadillo and tried compiling some basic code using script in atom:

#include <iostream>
#include <armadillo>

int main(int argc, const char **argv) {
  arma::arma_rng::set_seed_random();

  arma::Mat<double> A = arma::randu(4,4);
  std::cout << "A:\n" << A << "\n";

  return 0;
}

This is the error I got:

Undefined symbols for architecture x86_64:
  "thread-local wrapper routine for arma::arma_rng_cxx11_instance", referenced from:
      arma::arma_rng::set_seed(unsigned long long) in test1-83e853.o
      arma::arma_rng::randu<double>::fill(double*, unsigned long long) in test1-83e853.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

If I read the source code for this atom-script thing correctly, it just hardcodes -Wall -include stdio.h as compilation options. You need to add -larmadillo to link it to the Armadillo library.

In short: you cannot use atom-script in combination with custom libraries, unless you edit the extension to hardcode the libraries in your compilation commandline.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM