<?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[Boost::Filesystem kompilieren und linken in der Konsole mit GCC]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>während ich mit Boost keinerlei Schwierigkeiten in Entwicklungs-IDE's wie Xcode (Mac) oder <a href="http://VS.NET" rel="nofollow">VS.NET</a> habe, bekomme ich die Code-Beispiele vom Boost::Filesystem (in diesem Fall z.B. simple_ls.cpp, siehe unten) in der Konsole nicht kompiliert. Bin auch kein Experte in Konsolen-Kompilier-Session geschweige denn von Makefiles <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="🙄"
    /> Folgendes gebe ich in der Konsole unter Mac OS X ein, &lt;include-dir&gt; bzw. &lt;library-dir&gt; sind Platzhalter für meine spezifischen Pfade:</p>
<blockquote>
<p>g++ -I&lt;include-dir&gt; -L&lt;library-dir&gt; -lboost_filesystem simple_ls.cpp</p>
</blockquote>
<p>Die Pfade sind definitiv gültig. Entsprechende Beispiele in denen ich keine Library linken muss, quasi die Header-Only Libs, lassen sich problemlos kompilieren. Der obige Befehl inkl. Linken wird mir allerdings folgendermaßen quittiert:</p>
<blockquote>
<p>/usr/bin/ld: Undefined symbols:<br />
boost::filesystem::detail::remove_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)<br />
boost::filesystem::detail::status_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, int&amp;)<br />
boost::filesystem::detail::dir_itr_close(void*&amp;, void*&amp;)<br />
boost::filesystem::detail::dir_itr_first(void*&amp;, void*&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;, boost::filesystem::file_status&amp;, boost::filesystem::file_status&amp;)<br />
boost::filesystem::detail::not_found_error<br />
boost::filesystem::detail::dir_itr_increment(void*&amp;, void*&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;, boost::filesystem::file_status&amp;, boost::filesystem::file_status&amp;)<br />
boost::filesystem::detail::symlink_status_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, int&amp;)<br />
boost::filesystem::detail::create_directory_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)<br />
boost::filesystem::detail::get_current_path_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)<br />
collect2: ld returned 1 exit status</p>
</blockquote>
<pre><code class="language-cpp">//  simple_ls program  -------------------------------------------------------//

//  Copyright Jeff Garland and Beman Dawes, 2002

//  Use, modification, and distribution is subject to the Boost Software
//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt)

//  See http://www.boost.org/libs/filesystem for documentation.

#include &quot;boost/filesystem/operations.hpp&quot;
#include &quot;boost/filesystem/path.hpp&quot;
#include &quot;boost/progress.hpp&quot;
#include&lt;boost/tokenizer.hpp&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main(int argc, char* argv[])
{
	boost::progress_timer t( std::clog );

	boost::filesystem::path startpath( boost::filesystem::initial_path&lt;boost::filesystem::path&gt;() );
	std::cout &lt;&lt; &quot;Program is executed in &quot; &lt;&lt; startpath.native_directory_string() &lt;&lt; std::endl &lt;&lt; std::endl;

	char *pathvar = NULL;
	pathvar = getenv( &quot;PATH&quot; );

	std::string *sPathvar = NULL;
	sPathvar = new std::string[1];
	sPathvar-&gt;assign(pathvar);

	typedef boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt; tokenizer;
	boost::char_separator&lt;char&gt; sep(&quot;:&quot;);  // separator unter windows &quot;;&quot;
	tokenizer tokens(*sPathvar,sep);
	unsigned int uiQtyOfPaths=0;
	for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter, ++uiQtyOfPaths)
	{
		std::cout &lt;&lt; *tok_iter &lt;&lt; &quot;\n&quot;;
	}
	std::cout &lt;&lt; &quot;\nFound &quot; &lt;&lt; uiQtyOfPaths &lt;&lt; &quot; elements\n&quot;;

	unsigned int i=0;
	std::string **sPathSplitted = NULL;
	sPathSplitted = new std::string*[uiQtyOfPaths];
	for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter)
	{
		sPathSplitted[i] = new std::string[1];
		sPathSplitted[i]-&gt;assign(*tok_iter);

		boost::filesystem::path dirpath(*sPathSplitted[i]);
		if (is_directory(dirpath))
		{
			std::cout &lt;&lt; &quot;Valid directory:: &quot; &lt;&lt; dirpath.native_directory_string() &lt;&lt; std::endl;
		}
		else
		{
			std::cout &lt;&lt; &quot;Invalid directory &quot; &lt;&lt; std::endl;
		}

		i++;
	}

	for (i=0; i&lt;uiQtyOfPaths; i++)
	{
		sPathSplitted[i]-&gt;append(&quot;\\bjam.exe&quot;);

		boost::filesystem::path filepath(*sPathSplitted[i]);
		if ( !boost::filesystem::exists( filepath ) )
		{
			std::cout &lt;&lt; &quot;Not found &quot;;
		}
		else
		{
			std::cout &lt;&lt; &quot;&lt;&lt; File found &gt;&gt; &quot;;
		}
		std::cout &lt;&lt; sPathSplitted[i]-&gt;c_str() &lt;&lt; std::endl;
	}

	unsigned long file_count = 0;
	unsigned long dir_count = 0;
	unsigned long other_count = 0;
	unsigned long err_count = 0;
	boost::filesystem::directory_iterator end_iter;
	for ( boost::filesystem::directory_iterator dir_itr(&quot;/SourceCode/BoostFilesystem&quot;);
          dir_itr != end_iter;
          ++dir_itr )
    {
        if ( boost::filesystem::is_directory( dir_itr-&gt;status() ) )
        {
			++dir_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot; [directory]\n&quot;;
        }
        else if ( boost::filesystem::is_regular( dir_itr-&gt;status() ) )
        {
			++file_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot;\n&quot;;
        }
        else
        {
			++other_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot; [other]\n&quot;;
        }

	}

	std::cout &lt;&lt; std::endl &lt;&lt; std::endl;
	// Erstellen eines Directories
	boost::filesystem::path createdir(&quot;/SourceCode/BoostFilesystem/temp&quot;);
	if (boost::filesystem::is_directory(createdir))
	{
		std::cout &lt;&lt; &quot;Directory already exists !&quot; &lt;&lt; std::endl;
		std::cout &lt;&lt; &quot;Removing directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
		boost::filesystem::remove(createdir);
	}

	if (boost::filesystem::create_directory(createdir))
	{
		std::cout &lt;&lt; &quot;Creating directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
	}
	else
	{
		std::cout &lt;&lt; &quot;Unable to create directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
	}
	// // fprintf(stderr,&quot;The path variable contains :: %s \n\n&quot;,pathvar);

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/196082/boost-filesystem-kompilieren-und-linken-in-der-konsole-mit-gcc</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 05:35:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196082.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Oct 2007 09:54:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 09:54:50 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>während ich mit Boost keinerlei Schwierigkeiten in Entwicklungs-IDE's wie Xcode (Mac) oder <a href="http://VS.NET" rel="nofollow">VS.NET</a> habe, bekomme ich die Code-Beispiele vom Boost::Filesystem (in diesem Fall z.B. simple_ls.cpp, siehe unten) in der Konsole nicht kompiliert. Bin auch kein Experte in Konsolen-Kompilier-Session geschweige denn von Makefiles <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="🙄"
    /> Folgendes gebe ich in der Konsole unter Mac OS X ein, &lt;include-dir&gt; bzw. &lt;library-dir&gt; sind Platzhalter für meine spezifischen Pfade:</p>
<blockquote>
<p>g++ -I&lt;include-dir&gt; -L&lt;library-dir&gt; -lboost_filesystem simple_ls.cpp</p>
</blockquote>
<p>Die Pfade sind definitiv gültig. Entsprechende Beispiele in denen ich keine Library linken muss, quasi die Header-Only Libs, lassen sich problemlos kompilieren. Der obige Befehl inkl. Linken wird mir allerdings folgendermaßen quittiert:</p>
<blockquote>
<p>/usr/bin/ld: Undefined symbols:<br />
boost::filesystem::detail::remove_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)<br />
boost::filesystem::detail::status_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, int&amp;)<br />
boost::filesystem::detail::dir_itr_close(void*&amp;, void*&amp;)<br />
boost::filesystem::detail::dir_itr_first(void*&amp;, void*&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;, boost::filesystem::file_status&amp;, boost::filesystem::file_status&amp;)<br />
boost::filesystem::detail::not_found_error<br />
boost::filesystem::detail::dir_itr_increment(void*&amp;, void*&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;, boost::filesystem::file_status&amp;, boost::filesystem::file_status&amp;)<br />
boost::filesystem::detail::symlink_status_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, int&amp;)<br />
boost::filesystem::detail::create_directory_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)<br />
boost::filesystem::detail::get_current_path_api(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)<br />
collect2: ld returned 1 exit status</p>
</blockquote>
<pre><code class="language-cpp">//  simple_ls program  -------------------------------------------------------//

//  Copyright Jeff Garland and Beman Dawes, 2002

//  Use, modification, and distribution is subject to the Boost Software
//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt)

//  See http://www.boost.org/libs/filesystem for documentation.

#include &quot;boost/filesystem/operations.hpp&quot;
#include &quot;boost/filesystem/path.hpp&quot;
#include &quot;boost/progress.hpp&quot;
#include&lt;boost/tokenizer.hpp&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main(int argc, char* argv[])
{
	boost::progress_timer t( std::clog );

	boost::filesystem::path startpath( boost::filesystem::initial_path&lt;boost::filesystem::path&gt;() );
	std::cout &lt;&lt; &quot;Program is executed in &quot; &lt;&lt; startpath.native_directory_string() &lt;&lt; std::endl &lt;&lt; std::endl;

	char *pathvar = NULL;
	pathvar = getenv( &quot;PATH&quot; );

	std::string *sPathvar = NULL;
	sPathvar = new std::string[1];
	sPathvar-&gt;assign(pathvar);

	typedef boost::tokenizer&lt;boost::char_separator&lt;char&gt; &gt; tokenizer;
	boost::char_separator&lt;char&gt; sep(&quot;:&quot;);  // separator unter windows &quot;;&quot;
	tokenizer tokens(*sPathvar,sep);
	unsigned int uiQtyOfPaths=0;
	for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter, ++uiQtyOfPaths)
	{
		std::cout &lt;&lt; *tok_iter &lt;&lt; &quot;\n&quot;;
	}
	std::cout &lt;&lt; &quot;\nFound &quot; &lt;&lt; uiQtyOfPaths &lt;&lt; &quot; elements\n&quot;;

	unsigned int i=0;
	std::string **sPathSplitted = NULL;
	sPathSplitted = new std::string*[uiQtyOfPaths];
	for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter)
	{
		sPathSplitted[i] = new std::string[1];
		sPathSplitted[i]-&gt;assign(*tok_iter);

		boost::filesystem::path dirpath(*sPathSplitted[i]);
		if (is_directory(dirpath))
		{
			std::cout &lt;&lt; &quot;Valid directory:: &quot; &lt;&lt; dirpath.native_directory_string() &lt;&lt; std::endl;
		}
		else
		{
			std::cout &lt;&lt; &quot;Invalid directory &quot; &lt;&lt; std::endl;
		}

		i++;
	}

	for (i=0; i&lt;uiQtyOfPaths; i++)
	{
		sPathSplitted[i]-&gt;append(&quot;\\bjam.exe&quot;);

		boost::filesystem::path filepath(*sPathSplitted[i]);
		if ( !boost::filesystem::exists( filepath ) )
		{
			std::cout &lt;&lt; &quot;Not found &quot;;
		}
		else
		{
			std::cout &lt;&lt; &quot;&lt;&lt; File found &gt;&gt; &quot;;
		}
		std::cout &lt;&lt; sPathSplitted[i]-&gt;c_str() &lt;&lt; std::endl;
	}

	unsigned long file_count = 0;
	unsigned long dir_count = 0;
	unsigned long other_count = 0;
	unsigned long err_count = 0;
	boost::filesystem::directory_iterator end_iter;
	for ( boost::filesystem::directory_iterator dir_itr(&quot;/SourceCode/BoostFilesystem&quot;);
          dir_itr != end_iter;
          ++dir_itr )
    {
        if ( boost::filesystem::is_directory( dir_itr-&gt;status() ) )
        {
			++dir_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot; [directory]\n&quot;;
        }
        else if ( boost::filesystem::is_regular( dir_itr-&gt;status() ) )
        {
			++file_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot;\n&quot;;
        }
        else
        {
			++other_count;
			std::cout &lt;&lt; dir_itr-&gt;path().leaf() &lt;&lt; &quot; [other]\n&quot;;
        }

	}

	std::cout &lt;&lt; std::endl &lt;&lt; std::endl;
	// Erstellen eines Directories
	boost::filesystem::path createdir(&quot;/SourceCode/BoostFilesystem/temp&quot;);
	if (boost::filesystem::is_directory(createdir))
	{
		std::cout &lt;&lt; &quot;Directory already exists !&quot; &lt;&lt; std::endl;
		std::cout &lt;&lt; &quot;Removing directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
		boost::filesystem::remove(createdir);
	}

	if (boost::filesystem::create_directory(createdir))
	{
		std::cout &lt;&lt; &quot;Creating directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
	}
	else
	{
		std::cout &lt;&lt; &quot;Unable to create directory &quot; &lt;&lt; createdir.native_directory_string() &lt;&lt; std::endl;
	}
	// // fprintf(stderr,&quot;The path variable contains :: %s \n\n&quot;,pathvar);

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1391709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391709</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 15:36:08 GMT]]></title><description><![CDATA[<p>kontrollier nochmal, ob deine boostlib auch wirklich in deinem libdir liegt. Soweit ich weiß, zeigt gcc nicht an, wenn er eine lib nicht finden kann sondern spuckt nur die undefined references aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391985</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Thu, 25 Oct 2007 15:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 15:57:27 GMT]]></title><description><![CDATA[<p>Also ich bin kein GCC-User, aber muß man nicht den genauen Lib-Namen angeben??? Ich bezweifel mal, das die Libdatei einfach nur boost_filesystem.a heißt. Ich wette sie heißt irgendwie boost_filesystem_1.34.0_s.a oder so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391997</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 25 Oct 2007 15:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 16:07:54 GMT]]></title><description><![CDATA[<p>Schau das du die passende Version versuchst zu linken. Lass dir vielleicht mal durch die -v-Option beim kompilieren anzeigen, was er an den Linker weiterreicht.</p>
<p>btw. Wenn es mit XCode klappt, dann schau dir doch an, wie XCode den GCC aufruft <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="🙄"
    />)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392001</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 25 Oct 2007 16:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 17:14:47 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Schau das du die passende Version versuchst zu linken. Lass dir vielleicht mal durch die -v-Option beim kompilieren anzeigen, was er an den Linker weiterreicht. btw. Wenn es mit XCode klappt, dann schau dir doch an, wie XCode den GCC aufruft )</p>
</blockquote>
<p>Xcode kann man leider detailliert beim Kompilieren zu schauen. Trotzdem - Sehr guter Flag, damit konnte ich schonmal nachvollziehen, was GCC da macht und mich wundern, was er woher auch immer an Informationen und Pfaden bezieht...</p>
<p>Artchi schrieb:</p>
<blockquote>
<p>Also ich bin kein GCC-User, aber muß man nicht den genauen Lib-Namen angeben??? Ich bezweifel mal, das die Libdatei einfach nur boost_filesystem.a heißt. Ich wette sie heißt irgendwie boost_filesystem_1.34.0_s.a oder so...</p>
</blockquote>
<p>...in meinem Library Pfad hatte ich nicht nur die libboost_filesystem.a sondern auch die libboost_filesystem-1_34_1.a und nur mit dieser funktionierte auch das Linken. Aber den Unterschied verstehe ich nicht ? Außerdem habe ich nun die Schwierigkeit, daß er zwar kompiliert, aber das Executable terminiert sich mit</p>
<blockquote>
<p>console$ ./simple_ls<br />
dyld: Library not loaded: stage/lib/libboost_filesystem-1_34_1.dylib<br />
Referenced from: /SourceCode/BoostFilesystem/./simple_ls<br />
Reason: image not found<br />
Trace/BPT trap</p>
</blockquote>
<p>Der Pfad unter der das Executable &quot;simple_ls&quot; sucht ist falsch, er müßte &quot; stage_gcc/lib/libboost_filesystem-1_34_1.dylib&quot; heißen, wo steht dieser ? wo kann ich es ändern ? <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392030</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 25 Oct 2007 17:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 17:08:31 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Also ich bin kein GCC-User, aber muß man nicht den genauen Lib-Namen angeben??? Ich bezweifel mal, das die Libdatei einfach nur boost_filesystem.a heißt. Ich wette sie heißt irgendwie boost_filesystem_1.34.0_s.a oder so...</p>
</blockquote>
<p>Da wird meistens nen Link gesetzt von boost_filesystem auf boost_filesystem_1.3.4.0 gesetzt.</p>
<p>Unter Mac OS habe ich auch Probleme gehabt Boost in der Console zu linken. So klappt's aber:</p>
<pre><code>g++ main.cpp -o appl -I/opt/local/include 
    -Xlinker /opt/local/lib/libboost_serialization.dylib 
    -Xlinker /opt/local/lib/libboost_date_time.dylib
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1392031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392031</guid><dc:creator><![CDATA[Konrad]]></dc:creator><pubDate>Thu, 25 Oct 2007 17:08:31 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 17:25:53 GMT]]></title><description><![CDATA[<p>Konrad schrieb:</p>
<blockquote>
<p>Unter Mac OS habe ich auch Probleme gehabt Boost in der Console zu linken. So klappt's aber:</p>
<pre><code>g++ main.cpp -o appl -I/opt/local/include 
    -Xlinker /opt/local/lib/libboost_serialization.dylib 
    -Xlinker /opt/local/lib/libboost_date_time.dylib
</code></pre>
</blockquote>
<p>Haa, auch ein Mac-User <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Damit liess es sich schonmal anstandlos kompilieren, aber :S er sucht die Shared-Library an der falsches Stelle (siehe unten), statt &quot;stage**_gcc**/lib/libboost_filesystem-1_34_1.dylib&quot; sucht er bei &quot;stage/lib/libboost_filesystem-1_34_1.dylib&quot; ... wo kann ich das nun umstellen ?</p>
<blockquote>
<p>console$ ./simple_ls<br />
dyld: Library not loaded: stage/lib/libboost_filesystem-1_34_1.dylib<br />
Referenced from: /SourceCode/BoostFilesystem/./simple_ls<br />
Reason: image not found<br />
Trace/BPT trap</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1392046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392046</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 25 Oct 2007 17:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 17:47:04 GMT]]></title><description><![CDATA[<p>Theoretisch mit der Umgebungsvariable DYLD_LIBRARY_PATH. Das globaler (also über .MacOSX/environment.plist) zu setzen solltest du aber nur in Erwägung ziehen, wenn es nur um wenige Bibliotheken geht oder wenn du ein Case-Sensitive HFS+ hast. (Damit habe ich Probleme mit portage-prefix, da libTIFF,JPEG,PNG (von OSX) mit libtiff,jpeg,png („Standard-Unix“) kollidiert, was einem den Finder ganz schön töten kann ;))</p>
<p>/edit, Es gibt auch noch DYLD_LIBRARY_FALLBACK_PATH glaub ich. Mehr dazu steht in 'man dyld'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392056</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Thu, 25 Oct 2007 17:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Thu, 25 Oct 2007 21:29:00 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>Theoretisch mit der Umgebungsvariable DYLD_LIBRARY_PATH.</p>
</blockquote>
<p>Und praktisch auch, gg !! Besten Dank an Euch alle - endlich hat es funktioniert.... immer wieder toll dieses Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Letztendlich habe ich nun in meinem User-Verzeichnis das &quot;.profile&quot;-File mittels vi in der Konsole DYLD_LIBRARY_PATH für die dylib-Files, LD_LIBRARY_PATH für die lib&lt;bib&gt;.so Files, LIBRARY_PATH für die lib&lt;bib&gt;.a Files und letztendlich die CPATH für die include Header-Files über den EXPORT-Befehl gesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392208</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 25 Oct 2007 21:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Boost::Filesystem kompilieren und linken in der Konsole mit GCC on Fri, 26 Oct 2007 08:23:52 GMT]]></title><description><![CDATA[<p>.so? Seit wann kann der Mac das denn (abgesehen vom manuellen Laden mit dlopen)? Und .a-Dateien musst du eh nur zur Compile-Zeit finden, genau wie die Header, dafür brauchst du keine Umgebungsvariable. Und wenn doch, dann solltest du sie vielleicht auch so machen, dass dein gesamtes System sie findet (= in .MacOS/environment.plist einfügen).</p>
<p>Außerdem hoffe ich, dass ich dir die Gefahren klar gemacht habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392328</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 26 Oct 2007 08:23:52 GMT</pubDate></item></channel></rss>