<?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[Linker Fehler]]></title><description><![CDATA[<p>Hi! Ich bekomme folgenden Fehler:</p>
<blockquote>
<p>g++ -I./gtest-1.5.0/include -g -Wall -Wextra -c ./sample1_unittest.cc<br />
g++ -I./gtest-1.5.0/include -g -Wall -Wextra -lpthread sample1.o sample1_unittest.o TestClass.o gtest_main.a -o sample1_unittest<br />
Undefined symbols:<br />
&quot;TestClass::vectorFunction2(int*, int)&quot;, referenced from:<br />
TestClassTest_vectorFunction2_Test::TestBody() in sample1_unittest.o<br />
ld: symbol(s) not found<br />
collect2: ld returned 1 exit status<br />
make: *** [sample1_unittest] Error 1</p>
</blockquote>
<p>Ich benutze Google GTest um Unittest zu machen. Deshalb wollte ich ein kleines Testprogramm schreiben um da erstmal reinzukommen.</p>
<p>Mein Code sieht so aus:</p>
<pre><code class="language-cpp">#ifndef TESTCLASS_H_
#define TESTCLASS_H_

#include &lt;vector&gt;

class TestClass {

	public:
	std::vector&lt;int&gt; vectorFunction2( int* array, int length );

};

#endif /* TESTCLASS_H_ */
</code></pre>
<pre><code class="language-cpp">#include &quot;TestClass.h&quot;

std::vector&lt;int&gt; vectorFunction2( int* array, int length ) {

	std::vector&lt;int&gt; intVec;
	for( int i = 0; i &lt; length; ++i )
		intVec.push_back( array[i] );

	return intVec;

}
</code></pre>
<p>Und die Test-Klasse so (Auszug betreffender Teil):</p>
<pre><code class="language-cpp">// Test TestClass
TEST(TestClassTest,vectorFunction2) {
	TestClass testClass;
	int* array = new int[3];
	array[0] = 1;
	array[1] = 2;
	array[2] = 3;
	std::vector&lt;int&gt; result = testClass.vectorFunction2( array, 3 );
	EXPECT_EQ( 3, (int) result.size() );
	delete array;
}
</code></pre>
<p>TEST und EXPECT_EQ sind Makros. TestClass.h habe ich eingebunden in die Testklasse.</p>
<p>Was könnte hier falsch sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268937/linker-fehler</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 13:20:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268937.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Jun 2010 12:34:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker Fehler on Wed, 16 Jun 2010 12:34:56 GMT]]></title><description><![CDATA[<p>Hi! Ich bekomme folgenden Fehler:</p>
<blockquote>
<p>g++ -I./gtest-1.5.0/include -g -Wall -Wextra -c ./sample1_unittest.cc<br />
g++ -I./gtest-1.5.0/include -g -Wall -Wextra -lpthread sample1.o sample1_unittest.o TestClass.o gtest_main.a -o sample1_unittest<br />
Undefined symbols:<br />
&quot;TestClass::vectorFunction2(int*, int)&quot;, referenced from:<br />
TestClassTest_vectorFunction2_Test::TestBody() in sample1_unittest.o<br />
ld: symbol(s) not found<br />
collect2: ld returned 1 exit status<br />
make: *** [sample1_unittest] Error 1</p>
</blockquote>
<p>Ich benutze Google GTest um Unittest zu machen. Deshalb wollte ich ein kleines Testprogramm schreiben um da erstmal reinzukommen.</p>
<p>Mein Code sieht so aus:</p>
<pre><code class="language-cpp">#ifndef TESTCLASS_H_
#define TESTCLASS_H_

#include &lt;vector&gt;

class TestClass {

	public:
	std::vector&lt;int&gt; vectorFunction2( int* array, int length );

};

#endif /* TESTCLASS_H_ */
</code></pre>
<pre><code class="language-cpp">#include &quot;TestClass.h&quot;

std::vector&lt;int&gt; vectorFunction2( int* array, int length ) {

	std::vector&lt;int&gt; intVec;
	for( int i = 0; i &lt; length; ++i )
		intVec.push_back( array[i] );

	return intVec;

}
</code></pre>
<p>Und die Test-Klasse so (Auszug betreffender Teil):</p>
<pre><code class="language-cpp">// Test TestClass
TEST(TestClassTest,vectorFunction2) {
	TestClass testClass;
	int* array = new int[3];
	array[0] = 1;
	array[1] = 2;
	array[2] = 3;
	std::vector&lt;int&gt; result = testClass.vectorFunction2( array, 3 );
	EXPECT_EQ( 3, (int) result.size() );
	delete array;
}
</code></pre>
<p>TEST und EXPECT_EQ sind Makros. TestClass.h habe ich eingebunden in die Testklasse.</p>
<p>Was könnte hier falsch sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913247</guid><dc:creator><![CDATA[HändyÄndy]]></dc:creator><pubDate>Wed, 16 Jun 2010 12:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Wed, 16 Jun 2010 12:44:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;int&gt; vectorFunction2( int* array, int length ) {
</code></pre>
<p>da (also in der source-datei) liegt der fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
das hier fehlt noch:<br />
<code>TestClass::</code></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913259</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 16 Jun 2010 12:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Wed, 16 Jun 2010 12:45:48 GMT]]></title><description><![CDATA[<p>Ach Gott... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913261</guid><dc:creator><![CDATA[HändyÄndy]]></dc:creator><pubDate>Wed, 16 Jun 2010 12:45:48 GMT</pubDate></item></channel></rss>