|
From: | Thierry Banel |
Subject: | Re: [O] C++ code block not linked |
Date: | Mon, 27 Nov 2017 08:33:16 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
On 26/11/2017 12:42, Roger Mason wrote:
Hello, Thierry Banel <address@hidden> writes:On 25/11/2017 15:59, Roger Mason wrote:This code compiles fine on command line but org-babel can't link it. #+BEGIN_SRC C++ :flags "-std=c++11 -I/usr/local/include" :libs "-L/usr/local/lib -lginac" #include <iostream> #include <ginac/ginac.h> using namespace std; using namespace GiNaC; int main () { symbol a("a"), b("b"), x("x"), y("y"); lst eqns, vars; eqns = a*x+b*y==3, x-y==b; vars = x, y; cout << lsolve(eqns, vars) << endl; // -> {x==(3+b^2)/(b+a),y==(3-b*a)/(b+a) return 0; } #+END_SRC The error buffer contains many lines like this: /tmp//ccv5YYn1.o: In function `main': C-src-1046xti.cpp:(.text+0x67): undefined reference to `GiNaC::symbol::symbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'I get the correct result: #+RESULTS: | {x==(3+b^2)*(a+b)^(-1) | y==-(-3+a*b)*(a+b)^(-1)} | I use Or mode version 9.1.1I just upgraded to Org mode version 9.1.3 (release_9.1.3-185-g579fa1 @ /home/rmason/.emacs.d/org-git/lisp/) and I'm still getting the link error. Cheers, Roger You may try to mimic org-babel in a shell, and see what happens. cd /tmp/babel-29466ws7 g++ -std=c++11 -I/usr/local/include C-src-29466moy.cpp -L/usr/local/lib -lginac (of course you need to change the random names like babel-29466ws7 by the actual ones as generated on your system). |
[Prev in Thread] | Current Thread | [Next in Thread] |