<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[makefile-Probleme: wo überhaupt anfangen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe versucht, ein opensource-Projekt (sanddra 1.0.0 aus dem<br />
download-Bereich von <a href="http://www.kinness.net" rel="nofollow">http://www.kinness.net</a>) unter ubuntu<br />
zu compilieren.<br />
Wenn ich einfach den makefile nach Anleitung ausführe, kriege<br />
ich jede Menge Fehlermeldungen.</p>
<pre><code>./configure
</code></pre>
<p>läuft problemlos durch,</p>
<pre><code>make install
</code></pre>
<p>bringt die folgenden Meldungen (nur ein Ausschnitt):</p>
<blockquote>
<p>Making install in sanndra<br />
make[1]: Entering directory <code>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra' if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE\_CONFIG\_H -I. -I. -I.. -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D\_XOPEN\_SOURCE=500 -D\_BSD\_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -fexceptions -MT unit.lo -MD -MP -MF &quot;.deps/unit.Tpo&quot; \ -c -o unit.lo \</code>test -f 'unit.cpp' || echo './'`unit.cpp; \<br />
then mv -f &quot;.deps/unit.Tpo&quot; &quot;.deps/unit.Plo&quot;; \<br />
else rm -f &quot;.deps/unit.Tpo&quot;; exit 1; \<br />
fi<br />
In file included from internal.h:32:0,<br />
from gates.h:29,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
rates.h: In member function 'virtual T TExponRate&lt;T&gt;::operator()(T) const':<br />
rates.h:92:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'T TExponRate&lt;T&gt;::calcexp(T) const':<br />
rates.h:99:38: error: 'V0' was not declared in this scope<br />
rates.h:99:46: error: 'B' was not declared in this scope<br />
rates.h: In member function 'virtual T TSigmoidRate&lt;T&gt;::operator()(T) const':<br />
rates.h:127:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'virtual T TLinoidRate&lt;T&gt;::operator()(T) const':<br />
rates.h:157:47: error: 'V0' was not declared in this scope<br />
rates.h:158:60: error: 'A' was not declared in this scope<br />
rates.h:158:89: error: 'B' was not declared in this scope<br />
rates.h: In member function 'virtual T TParamRate&lt;T&gt;::operator()(T) const':<br />
rates.h:185:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'virtual T TExtParamRate&lt;T&gt;::operator()(T) const':<br />
rates.h:220:52: error: 'A' was not declared in this scope<br />
rates.h:220:61: error: 'B' was not declared in this scope<br />
In file included from gates.h:29:0,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
internal.h: In member function 'virtual T TMTauGating&lt;T&gt;::init(T)':<br />
internal.h:59:43: error: 'm_a' was not declared in this scope<br />
internal.h: In member function 'virtual T TMTauGating&lt;T&gt;::operator()(T) const':<br />
internal.h:62:47: error: 'm_b' was not declared in this scope<br />
internal.h:62:52: error: 'm_a' was not declared in this scope<br />
internal.h: In member function 'virtual T TEq_DualExp&lt;T&gt;::fill(size_t)':<br />
internal.h:98:51: error: 'm_tf' was not declared in this scope<br />
internal.h: In member function 'virtual T TReducedModulated&lt;T&gt;::operator()(T, T)':<br />
internal.h:123:48: error: 'm_threshold' was not declared in this scope<br />
In file included from gates.h:30:0,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
formulas.h: In constructor 'TRandom&lt;T&gt;::TRandom(long unsigned int)':<br />
formulas.h:66:22: error: 'ULONG_MAX' was not declared in this scope<br />
In file included from projection.h:29:0,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
gates.h: In member function 'virtual void TIntegrChemGate&lt;T&gt;::calc(T, T&amp;, size_t&amp;, size_t&amp;) const':<br />
gates.h:482:11: error: 'm_eq' was not declared in this scope<br />
In file included from equations.h:32:0,<br />
from unit.cpp:30:<br />
channels.h: In member function 'virtual T TInjectedChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:124:60: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:124:60: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)<br />
channels.h: In member function 'virtual T TMultiChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;)':<br />
channels.h:169:116: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:172:96: error: there are no arguments to 'nernst' that depend on a template parameter, so a declaration of 'nernst' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TMultiChannel&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:187:101: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:190:110: error: there are no arguments to 'nernst' that depend on a template parameter, so a declaration of 'nernst' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TReducedChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;)':<br />
channels.h:236:41: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TGapJunction&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:287:122: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TGapJunction&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:300:98: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:300:112: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TMGapJunction&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:331:124: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TMGapJunction&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:351:99: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
In file included from unit.cpp:30:0:<br />
equations.h: In member function 'T TEq_Membrane&lt;T&gt;::operator()(T) const':<br />
equations.h:138:94: error: 'm_inputs' was not declared in this scope<br />
equations.h: In member function 'virtual T TEq_Membrane&lt;T&gt;::equilibrium() const':<br />
equations.h:146:108: error: 'm_inputs' was not declared in this scope<br />
equations.h: In member function 'virtual T TEq_RCF&lt;T&gt;::calcSum() const':<br />
equations.h:177:89: error: 'm_inputs' was not declared in this scope<br />
In file included from unit.cpp:30:0:<br />
equations.h: In member function 'virtual T TEq_RCF&lt;T&gt;::init() const':<br />
equations.h:209:35: error: 'm_inputs' was not declared in this scope<br />
In file included from fanlink.h:29:0,<br />
from input.cpp:26,<br />
from unit.cpp:32:<br />
slice_itr.h: At global scope:<br />
slice_itr.h:87:23: error: declaration of 'operator==' as non-function<br />
slice_itr.h:87:23: error: expected ';' at end of member declaration<br />
slice_itr.h:87:26: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h:88:23: error: declaration of 'operator!=' as non-function<br />
slice_itr.h:88:23: error: expected ';' at end of member declaration<br />
slice_itr.h:88:26: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h:89:23: error: declaration of 'operator&lt;' as non-function<br />
slice_itr.h:89:23: error: expected ';' at end of member declaration<br />
slice_itr.h:89:25: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h: In member function 'T&amp; slice_iter&lt;T&gt;::ref(size_t) const':<br />
slice_itr.h:76:35: error: 'v' was not declared in this scope<br />
slice_itr.h: At global scope:<br />
slice_itr.h:102:1: warning: keyword 'export' not implemented, and will be ignored [enabled by default]<br />
slice_itr.h: In member function 'T&amp; rslice_iter&lt;T&gt;::ref(size_t) const':<br />
slice_itr.h:123:35: error: 'v' was not declared in this scope<br />
slice_itr.h: At global scope:<br />
slice_itr.h:147:1: warning: keyword 'export' not implemented, and will be ignored [enabled by default]<br />
In file included from input.cpp:26:0,<br />
from unit.cpp:32:<br />
fanlink.h: In member function 'virtual void TLink&lt;T&gt;::calculate()':<br />
fanlink.h:46:3: error: 'm_gate' was not declared in this scope<br />
fanlink.h:46:17: error: 'm_input' was not declared in this scope<br />
fanlink.h:46:26: error: 'm_gvar' was not declared in this scope<br />
fanlink.h:46:34: error: 'm_last' was not declared in this scope<br />
fanlink.h:46:42: error: 'm_ntl' was not declared in this scope<br />
fanlink.h:47:5: error: 'm_learningRule' was not declared in this scope<br />
fanlink.h:47:30: error: 'm_post' was not declared in this scope<br />
fanlink.h: In member function 'virtual void TBasicFanLink&lt;T, A&gt;::calculate()':<br />
fanlink.h:80:4: error: 'm_gate' was not declared in this scope<br />
fanlink.h:85:6: error: 'm_learningRule' was not declared in this scope<br />
fanlink.h:85:35: error: 'm_post' was not declared in this scope<br />
fanlink.h:87:3: error: 'm_gvar' was not declared in this scope<br />
fanlink.h: In member function 'virtual void TBasicFanLink&lt;T, A&gt;::init()':<br />
fanlink.h:92:36: error: 'm_gate' was not declared in this scope<br />
fanlink.h:98:22: error: 'm_gvar' was not declared in this scope<br />
fanlink.h: In member function 'virtual T TModLearningRate&lt;T&gt;::rate()':</p>
</blockquote>
<p>Ich habe dann versucht, ein Code::Blocks-Projekt anzulegen, und<br />
die Quelldateien manuell zusammenzufügen. Das bringt aber<br />
auch sofort Fehler, z.B. in rates.h:</p>
<blockquote>
<p>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TExponRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|92|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘T TExponRate&lt;T&gt;::calcexp(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|99|error: ‘V0’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|99|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TSigmoidRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|127|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TLinoidRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|157|error: ‘V0’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|158|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|158|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TParamRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|185|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TExtParamRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|220|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|220|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TMTauGating&lt;T&gt;::init(T)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|59|error: ‘m_a’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TMTauGating&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|62|error: ‘m_b’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|62|error: ‘m_a’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TEq_DualExp&lt;T&gt;::fill(size_t)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|98|error: ‘m_tf’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TReducedModulated&lt;T&gt;::operator()(T, T)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|123|error: ‘m_threshold’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/formulas.h||In constructor ‘TRandom&lt;T&gt;::TRandom(long unsigned int)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/formulas.h|66|error: ‘ULONG_MAX’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/gates.h||In member function ‘virtual void TIntegrChemGate&lt;T&gt;::calc(T, T&amp;, size_t&amp;, size_t&amp;) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/gates.h|482|error: ‘m_eq’ was not declared in this scope|<br />
||=== Build finished: 17 errors, 0 warnings ===|</p>
</blockquote>
<p>Da ich zwar schon C++-Programme geschrieben habe, mich aber mit dem<br />
C++-Standard nicht besonders auskenne, weiss ich nicht genau,<br />
wo ich bei der Menge von Fehlermeldungen hier anfangen soll,<br />
überhaupt nach einer Lösung zu suchen.</p>
<p>Ist das hier ein Problem mit dem Sprachstandard (bzw. den gcc-Optionen<br />
für den Sprachstandard)?</p>
<p>Was kommt als Problemursache hier überhaupt in Frage<br />
(Probleme mit der Ubuntu-Konfiguration? Falsche<br />
GCC-Version? Fehlerhafter Makefile? Tatsächlich fehlerhafter Code?<br />
Eine falsche Compiler-Optionen?)</p>
<p>Gibt es vielleicht ein gutes Tutorial zum Debuggen von Makefiles<br />
bzw. zur Diagnose von solchen Problemen mit umfangreichen<br />
open-source Projekten?</p>
<p>Danke für jeden Tip!</p>
<p>Ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308029/makefile-probleme-wo-überhaupt-anfangen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 05:58:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308029.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Sep 2012 19:29:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Wed, 12 Sep 2012 19:29:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe versucht, ein opensource-Projekt (sanddra 1.0.0 aus dem<br />
download-Bereich von <a href="http://www.kinness.net" rel="nofollow">http://www.kinness.net</a>) unter ubuntu<br />
zu compilieren.<br />
Wenn ich einfach den makefile nach Anleitung ausführe, kriege<br />
ich jede Menge Fehlermeldungen.</p>
<pre><code>./configure
</code></pre>
<p>läuft problemlos durch,</p>
<pre><code>make install
</code></pre>
<p>bringt die folgenden Meldungen (nur ein Ausschnitt):</p>
<blockquote>
<p>Making install in sanndra<br />
make[1]: Entering directory <code>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra' if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE\_CONFIG\_H -I. -I. -I.. -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D\_XOPEN\_SOURCE=500 -D\_BSD\_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -fexceptions -MT unit.lo -MD -MP -MF &quot;.deps/unit.Tpo&quot; \ -c -o unit.lo \</code>test -f 'unit.cpp' || echo './'`unit.cpp; \<br />
then mv -f &quot;.deps/unit.Tpo&quot; &quot;.deps/unit.Plo&quot;; \<br />
else rm -f &quot;.deps/unit.Tpo&quot;; exit 1; \<br />
fi<br />
In file included from internal.h:32:0,<br />
from gates.h:29,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
rates.h: In member function 'virtual T TExponRate&lt;T&gt;::operator()(T) const':<br />
rates.h:92:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'T TExponRate&lt;T&gt;::calcexp(T) const':<br />
rates.h:99:38: error: 'V0' was not declared in this scope<br />
rates.h:99:46: error: 'B' was not declared in this scope<br />
rates.h: In member function 'virtual T TSigmoidRate&lt;T&gt;::operator()(T) const':<br />
rates.h:127:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'virtual T TLinoidRate&lt;T&gt;::operator()(T) const':<br />
rates.h:157:47: error: 'V0' was not declared in this scope<br />
rates.h:158:60: error: 'A' was not declared in this scope<br />
rates.h:158:89: error: 'B' was not declared in this scope<br />
rates.h: In member function 'virtual T TParamRate&lt;T&gt;::operator()(T) const':<br />
rates.h:185:47: error: 'A' was not declared in this scope<br />
rates.h: In member function 'virtual T TExtParamRate&lt;T&gt;::operator()(T) const':<br />
rates.h:220:52: error: 'A' was not declared in this scope<br />
rates.h:220:61: error: 'B' was not declared in this scope<br />
In file included from gates.h:29:0,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
internal.h: In member function 'virtual T TMTauGating&lt;T&gt;::init(T)':<br />
internal.h:59:43: error: 'm_a' was not declared in this scope<br />
internal.h: In member function 'virtual T TMTauGating&lt;T&gt;::operator()(T) const':<br />
internal.h:62:47: error: 'm_b' was not declared in this scope<br />
internal.h:62:52: error: 'm_a' was not declared in this scope<br />
internal.h: In member function 'virtual T TEq_DualExp&lt;T&gt;::fill(size_t)':<br />
internal.h:98:51: error: 'm_tf' was not declared in this scope<br />
internal.h: In member function 'virtual T TReducedModulated&lt;T&gt;::operator()(T, T)':<br />
internal.h:123:48: error: 'm_threshold' was not declared in this scope<br />
In file included from gates.h:30:0,<br />
from projection.h:29,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
formulas.h: In constructor 'TRandom&lt;T&gt;::TRandom(long unsigned int)':<br />
formulas.h:66:22: error: 'ULONG_MAX' was not declared in this scope<br />
In file included from projection.h:29:0,<br />
from unit.h:29,<br />
from unit.cpp:27:<br />
gates.h: In member function 'virtual void TIntegrChemGate&lt;T&gt;::calc(T, T&amp;, size_t&amp;, size_t&amp;) const':<br />
gates.h:482:11: error: 'm_eq' was not declared in this scope<br />
In file included from equations.h:32:0,<br />
from unit.cpp:30:<br />
channels.h: In member function 'virtual T TInjectedChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:124:60: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:124:60: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)<br />
channels.h: In member function 'virtual T TMultiChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;)':<br />
channels.h:169:116: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:172:96: error: there are no arguments to 'nernst' that depend on a template parameter, so a declaration of 'nernst' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TMultiChannel&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:187:101: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:190:110: error: there are no arguments to 'nernst' that depend on a template parameter, so a declaration of 'nernst' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TReducedChannel&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;)':<br />
channels.h:236:41: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TGapJunction&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:287:122: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TGapJunction&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:300:98: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h:300:112: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual T TMGapJunction&lt;T&gt;::calculate(T, typename std::vector&lt;TInput&lt;T&gt;<em>&gt;::iterator&amp;)':<br />
channels.h:331:124: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
channels.h: In member function 'virtual void TMGapJunction&lt;T&gt;::init(typename std::vector&lt;TInput&lt;T&gt;</em>&gt;::iterator&amp;, T&amp;, T&amp;)':<br />
channels.h:351:99: error: there are no arguments to 'gBar' that depend on a template parameter, so a declaration of 'gBar' must be available [-fpermissive]<br />
In file included from unit.cpp:30:0:<br />
equations.h: In member function 'T TEq_Membrane&lt;T&gt;::operator()(T) const':<br />
equations.h:138:94: error: 'm_inputs' was not declared in this scope<br />
equations.h: In member function 'virtual T TEq_Membrane&lt;T&gt;::equilibrium() const':<br />
equations.h:146:108: error: 'm_inputs' was not declared in this scope<br />
equations.h: In member function 'virtual T TEq_RCF&lt;T&gt;::calcSum() const':<br />
equations.h:177:89: error: 'm_inputs' was not declared in this scope<br />
In file included from unit.cpp:30:0:<br />
equations.h: In member function 'virtual T TEq_RCF&lt;T&gt;::init() const':<br />
equations.h:209:35: error: 'm_inputs' was not declared in this scope<br />
In file included from fanlink.h:29:0,<br />
from input.cpp:26,<br />
from unit.cpp:32:<br />
slice_itr.h: At global scope:<br />
slice_itr.h:87:23: error: declaration of 'operator==' as non-function<br />
slice_itr.h:87:23: error: expected ';' at end of member declaration<br />
slice_itr.h:87:26: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h:88:23: error: declaration of 'operator!=' as non-function<br />
slice_itr.h:88:23: error: expected ';' at end of member declaration<br />
slice_itr.h:88:26: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h:89:23: error: declaration of 'operator&lt;' as non-function<br />
slice_itr.h:89:23: error: expected ';' at end of member declaration<br />
slice_itr.h:89:25: error: expected unqualified-id before '&lt;' token<br />
slice_itr.h: In member function 'T&amp; slice_iter&lt;T&gt;::ref(size_t) const':<br />
slice_itr.h:76:35: error: 'v' was not declared in this scope<br />
slice_itr.h: At global scope:<br />
slice_itr.h:102:1: warning: keyword 'export' not implemented, and will be ignored [enabled by default]<br />
slice_itr.h: In member function 'T&amp; rslice_iter&lt;T&gt;::ref(size_t) const':<br />
slice_itr.h:123:35: error: 'v' was not declared in this scope<br />
slice_itr.h: At global scope:<br />
slice_itr.h:147:1: warning: keyword 'export' not implemented, and will be ignored [enabled by default]<br />
In file included from input.cpp:26:0,<br />
from unit.cpp:32:<br />
fanlink.h: In member function 'virtual void TLink&lt;T&gt;::calculate()':<br />
fanlink.h:46:3: error: 'm_gate' was not declared in this scope<br />
fanlink.h:46:17: error: 'm_input' was not declared in this scope<br />
fanlink.h:46:26: error: 'm_gvar' was not declared in this scope<br />
fanlink.h:46:34: error: 'm_last' was not declared in this scope<br />
fanlink.h:46:42: error: 'm_ntl' was not declared in this scope<br />
fanlink.h:47:5: error: 'm_learningRule' was not declared in this scope<br />
fanlink.h:47:30: error: 'm_post' was not declared in this scope<br />
fanlink.h: In member function 'virtual void TBasicFanLink&lt;T, A&gt;::calculate()':<br />
fanlink.h:80:4: error: 'm_gate' was not declared in this scope<br />
fanlink.h:85:6: error: 'm_learningRule' was not declared in this scope<br />
fanlink.h:85:35: error: 'm_post' was not declared in this scope<br />
fanlink.h:87:3: error: 'm_gvar' was not declared in this scope<br />
fanlink.h: In member function 'virtual void TBasicFanLink&lt;T, A&gt;::init()':<br />
fanlink.h:92:36: error: 'm_gate' was not declared in this scope<br />
fanlink.h:98:22: error: 'm_gvar' was not declared in this scope<br />
fanlink.h: In member function 'virtual T TModLearningRate&lt;T&gt;::rate()':</p>
</blockquote>
<p>Ich habe dann versucht, ein Code::Blocks-Projekt anzulegen, und<br />
die Quelldateien manuell zusammenzufügen. Das bringt aber<br />
auch sofort Fehler, z.B. in rates.h:</p>
<blockquote>
<p>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TExponRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|92|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘T TExponRate&lt;T&gt;::calcexp(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|99|error: ‘V0’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|99|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TSigmoidRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|127|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TLinoidRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|157|error: ‘V0’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|158|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|158|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TParamRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|185|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h||In member function ‘virtual T TExtParamRate&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|220|error: ‘A’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/rates.h|220|error: ‘B’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TMTauGating&lt;T&gt;::init(T)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|59|error: ‘m_a’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TMTauGating&lt;T&gt;::operator()(T) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|62|error: ‘m_b’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|62|error: ‘m_a’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TEq_DualExp&lt;T&gt;::fill(size_t)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|98|error: ‘m_tf’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h||In member function ‘virtual T TReducedModulated&lt;T&gt;::operator()(T, T)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/internal.h|123|error: ‘m_threshold’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/formulas.h||In constructor ‘TRandom&lt;T&gt;::TRandom(long unsigned int)’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/formulas.h|66|error: ‘ULONG_MAX’ was not declared in this scope|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/gates.h||In member function ‘virtual void TIntegrChemGate&lt;T&gt;::calc(T, T&amp;, size_t&amp;, size_t&amp;) const’:|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/gates.h|482|error: ‘m_eq’ was not declared in this scope|<br />
||=== Build finished: 17 errors, 0 warnings ===|</p>
</blockquote>
<p>Da ich zwar schon C++-Programme geschrieben habe, mich aber mit dem<br />
C++-Standard nicht besonders auskenne, weiss ich nicht genau,<br />
wo ich bei der Menge von Fehlermeldungen hier anfangen soll,<br />
überhaupt nach einer Lösung zu suchen.</p>
<p>Ist das hier ein Problem mit dem Sprachstandard (bzw. den gcc-Optionen<br />
für den Sprachstandard)?</p>
<p>Was kommt als Problemursache hier überhaupt in Frage<br />
(Probleme mit der Ubuntu-Konfiguration? Falsche<br />
GCC-Version? Fehlerhafter Makefile? Tatsächlich fehlerhafter Code?<br />
Eine falsche Compiler-Optionen?)</p>
<p>Gibt es vielleicht ein gutes Tutorial zum Debuggen von Makefiles<br />
bzw. zur Diagnose von solchen Problemen mit umfangreichen<br />
open-source Projekten?</p>
<p>Danke für jeden Tip!</p>
<p>Ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250755</guid><dc:creator><![CDATA[CPP_userx]]></dc:creator><pubDate>Wed, 12 Sep 2012 19:29:22 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Wed, 12 Sep 2012 20:47:47 GMT]]></title><description><![CDATA[<p>Dein Problem hat mit Makefiles nichts zu tun. Das Problem ist der (uralte) C++-Code. Neuere GCCs sind da deutlich pingeliger geworden. Zum Beispiel wurde vor einiger Zeit der <a href="http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html" rel="nofollow">Two-Stage-Lookup</a> standardkonform implementiert, was bei so manchem alten Code das Kompilieren verhindert hat.</p>
<p>Wenn du dann seit Ewigkeiten nicht mehr gepflegten Code mit einem aktuellen GCC kompilieren willst, kracht es dann ab und zu. Mit den Schaltern aus deiner Fehlermeldung kannst du dem GCC aber sagen, dass er über solche Fehler im Code hinwegsehen soll. Wenn das nicht in allen Fällen was bringt, musst du dich halt durch den Code wühlen.</p>
<p>Ich persönlich würde ja dazu raten dir einfach ein Projekt zu suchen, das von seinen Entwicklern nicht schon vor fast einem Jahrzehnt dem Bitrot überlassen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250772</guid><dc:creator><![CDATA[alter Bernd]]></dc:creator><pubDate>Wed, 12 Sep 2012 20:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Thu, 13 Sep 2012 21:21:49 GMT]]></title><description><![CDATA[<p>Vielen Dank für die klare und hilfreiche Antwort!</p>
<p>Ich bin leider auf den Code angewiesen, weil<br />
ich den für ein spezielles Modell brauche.</p>
<p>Also werde ich mich mal durch die Compilerschalter<br />
von gcc wühlen, die sind ja wenigstens<br />
gut dokumentiert, so dass da Hoffnung besteht.</p>
<p>Gruß,<br />
Ralf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251138</guid><dc:creator><![CDATA[CPP_userx]]></dc:creator><pubDate>Thu, 13 Sep 2012 21:21:49 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Fri, 14 Sep 2012 07:22:04 GMT]]></title><description><![CDATA[<p>Habe nochmal ein bißchen weiter recherchiert, ein Fehler,<br />
der beim Compilieren des Projektes oft auftaucht, ist dieser:</p>
<p><a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34184" rel="nofollow">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34184</a></p>
<p>und wenn ich statt A dann this-&gt;A verwende in der ererbten Klasse,<br />
dann verschwindet die Fehlermeldung &quot;A was not declared in this scope&quot;.</p>
<p>Da der Code aber nun umfangreich ist, kann ich es nicht überall ändern<br />
und es wäre also wieder die Frage:<br />
liegt es an der gcc-Version?<br />
oder kann ich durch Schalter den compiler dazu bringen,<br />
die ererbten Variablen irgendwie zu erkennen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251172</guid><dc:creator><![CDATA[CPP_userx]]></dc:creator><pubDate>Fri, 14 Sep 2012 07:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Fri, 14 Sep 2012 07:30:54 GMT]]></title><description><![CDATA[<p>CPP_userx schrieb:</p>
<blockquote>
<p>Habe nochmal ein bißchen weiter recherchiert, ein Fehler,<br />
der beim Compilieren des Projektes oft auftaucht, ist dieser:</p>
<p><a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34184" rel="nofollow">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34184</a></p>
<p>und wenn ich statt A dann this-&gt;A verwende in der ererbten Klasse,<br />
dann verschwindet die Fehlermeldung &quot;A was not declared in this scope&quot;.</p>
<p>Da der Code aber nun umfangreich ist, kann ich es nicht überall ändern<br />
und es wäre also wieder die Frage:<br />
liegt es an der gcc-Version?<br />
oder kann ich durch Schalter den compiler dazu bringen,<br />
die ererbten Variablen irgendwie zu erkennen?</p>
</blockquote>
<p>Der einfachste Weg dürfte sein, using-Deklarationen in der abgeleiteten Klasse einzufügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251174</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 14 Sep 2012 07:30:54 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Fri, 14 Sep 2012 08:14:56 GMT]]></title><description><![CDATA[<p>Das hat geklappt.<br />
Allerding kommt nun eine neue Klasse von Fehlern:</p>
<p>z.B. bei der Deklaration:</p>
<pre><code>friend bool operator == &lt;&gt;(const slice_iter&lt;T&gt;&amp;p, const slice_iter&lt;T&gt;&amp;q);
</code></pre>
<p>gleich drei Fehler:</p>
<blockquote>
<p>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: declaration of ‘operator==’ as non-function|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: expected ‘;’ at end of member declaration|/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: expected unqualified-id before ‘&lt;’ token|</p>
</blockquote>
<p>Kann es denn sein, dass hier ein anderer Sprachstandard verwendet wurde?<br />
Sollte ich vielleicht einen anderen Compiler nehmen?<br />
Oder doch nach einem Schalter fǘr laxere Fehlerbehandlung suchen<br />
(bisher habe ich noch nichts Geeignetes als Compilerschalter gegooglt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251183</guid><dc:creator><![CDATA[CPP_userx]]></dc:creator><pubDate>Fri, 14 Sep 2012 08:14:56 GMT</pubDate></item><item><title><![CDATA[Reply to makefile-Probleme: wo überhaupt anfangen? on Fri, 14 Sep 2012 08:57:19 GMT]]></title><description><![CDATA[<p>CPP_userx schrieb:</p>
<blockquote>
<p>z.B. bei der Deklaration:</p>
<pre><code>friend bool operator == &lt;&gt;(const slice_iter&lt;T&gt;&amp;p, const slice_iter&lt;T&gt;&amp;q);
</code></pre>
<p>gleich drei Fehler:</p>
<blockquote>
<p>/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: declaration of ‘operator==’ as non-function|<br />
/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: expected ‘;’ at end of member declaration|/home/lxuser/Documents/neural/gross_Smart/sanndra/sanndra/slice_itr.h|87|error: expected unqualified-id before ‘&lt;’ token|</p>
</blockquote>
</blockquote>
<p>Da müsste man jetzt etwas genauer wissen, wie der Code aussieht, damit man es so richtig stellen kann, wie es gemeint ist. Je nach Zusammenhang kann hier der Fehler verschiedene Ursachen haben. Am wahrscheinlichsten ist, dass vorher eine Forward-Deklaration des Operators</p>
<pre><code class="language-cpp">template &lt;class T&gt; bool operator ==(const slice_iter&lt;T&gt;&amp;p, const slice_iter&lt;T&gt;&amp;q);
</code></pre>
<p>fehlt. Sonst weiß der Compiler nicht, dass der Operator als Template definiert ist und wundert sich, was das &lt;&gt; da soll, wenn er es als normale Funktion zu parsen versucht.</p>
<blockquote>
<p>Kann es denn sein, dass hier ein anderer Sprachstandard verwendet wurde?</p>
</blockquote>
<p>Jain. Die Fehler sind schon korrekt so, streng nach Sprachstandard. Aber Compiler dürfen auch etwas laxer sein in der Umsetzung der Sprache. Das war besonders ganz früher der Fall, als der Sprachstandard noch jung war oder bei schwer zu implementierenden Feinheiten des Sprachstandards. Dadurch konnte auch an sich fehlerhafter Code problemlos übersetzt werden, ohne dass man die Fehler bemerkte. Aber besonders der GCC ist in den letzten Jahren extrem pedantisch geworden, was die Einhaltung des Sprachstandards angeht. Dann funktioniert der Code mit neuen Compilern eben nicht mehr.</p>
<blockquote>
<p>Sollte ich vielleicht einen anderen Compiler nehmen?</p>
</blockquote>
<p>Würde ich nicht, außer es bereitet extrem viel Mühe, den Code auf den neuesten Stand zu bringen. Falsch ist er sowieso, falls irgendwann der alte Compiler nicht mehr benutzt werden kann, hast du das gleiche Problem wieder. Außerdem haben jüngere GCCs wirklich viel gelernt, was Optimierung angeht, viele (nahezu alle) Features des C++11-Standard umgesetzt und die Fehlermeldungen sind sehr viel lesbarer geworden. Darauf würde ich(!) nicht verzichten wollen.</p>
<blockquote>
<p>Oder doch nach einem Schalter fǘr laxere Fehlerbehandlung suchen</p>
</blockquote>
<p>Ja, das könnte gehen. Aber meistens sollte er dir schon den passenden Schalter vorschlagen, wenn es einen gibt. Eventuell kannst du auch die Sprachstandardschalter mal ausprobieren. Die GCC-Standards sind oft laxer als die ANSI-Standards.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251194</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 14 Sep 2012 08:57:19 GMT</pubDate></item></channel></rss>