<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Возмжно ли использовать библиотеку на С++ в проекте на С?</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8273.html</link>
    <description>Здравствуйте.&lt;br&gt;&lt;br&gt;Вопрос:&lt;br&gt;Можно ли использовать библиотеку, написанную на С++, в проекте написанном на чистом С?&lt;br&gt;Если да, то как?&lt;br&gt;&lt;br&gt;Например:&lt;br&gt;&lt;br&gt;//----- исходник библиотеки -----&lt;br&gt;//file:  mylib.cpp&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;void lib_print(int i)&lt;br&gt;&#123;&lt;br&gt;    printf(&quot;Hello, boss. Incomming parameter is &#037;d.&#092;n&quot;, i);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;//----- исходник пользователя библиотекой -----&lt;br&gt;//file:  libuser.c&lt;br&gt;&lt;br&gt;void lib_print(int i);&lt;br&gt;int main()&lt;br&gt;&#123;&lt;br&gt;    lib_print(20);&lt;br&gt;    return 0;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;//----- сборка либы -----&lt;br&gt;g++ -Wall lib.cpp -c&lt;br&gt;ar rc libmylib.a lib.o&lt;br&gt;ranlib libmylib.a&lt;br&gt;&lt;br&gt;//----- сборка пользователя -----&lt;br&gt;gcc -Wall -o libuser_c libuser.c -L. -lmylib&lt;br&gt;&lt;br&gt;ОШИБКА:&lt;br&gt;./libmylib.a(lib.o):(.eh_frame+0x11): undefined reference to &#096;__gxx_personality_v0&apos;&lt;br&gt;collect2: ld returned 1 exit status&lt;br&gt;&lt;br&gt;Заранее всем спасибо!!!&lt;br&gt;</description>

<item>
    <title>Возмжно ли использовать библиотеку на С++ в проекте на С? (worman)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8273.html#2</link>
    <pubDate>Wed, 20 May 2009 07:16:26 GMT</pubDate>
    <description>&amp;gt;&amp;gt;//----- сборка пользователя ----- &lt;br&gt;&amp;gt;&amp;gt;gcc -Wall -o libuser_c libuser.c -L. -lmylib &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;-lstdc++ &lt;br&gt;&lt;br&gt;Заработало. Спасибо!&lt;br&gt;&lt;br&gt;Только еще надо было добавить&lt;br&gt;extern &quot;C&quot; &#123; _здесь_ф-ии_которые_будут_вызываться_из_С_кода_ &#125;&lt;br&gt;&lt;br&gt;&lt;br&gt;В итоге пример пользования таков:&lt;br&gt;&lt;br&gt;&lt;br&gt;//----- исходник библиотеки -----&lt;br&gt;//file:  mylib.cpp&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;class MyClass&lt;br&gt;&#123;&lt;br&gt;public:&lt;br&gt;    MyClass()  &#123; printf(&quot;Constructor MyClass.&#092;n&quot;); &#125;&lt;br&gt;    ~MyClass() &#123; printf(&quot;Destructor  MyClass.&#092;n&quot;); &#125;&lt;br&gt;&#125;;&lt;br&gt;&lt;br&gt;extern &quot;C&quot;&lt;br&gt;&#123;&lt;br&gt;void lib_print(int i)&lt;br&gt;&#123;&lt;br&gt;    MyClass a;&lt;br&gt;    printf(&quot;Hello, boss. Incomming parameter id &#037;d.&#092;n&quot;, i);&lt;br&gt;&#125;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;//----- исходник пользователя библиотекой -----&lt;br&gt;//file:  libuser.c&lt;br&gt;&lt;br&gt;void lib_print(int i);&lt;br&gt;int main()&lt;br&gt;&#123;&lt;br&gt;    lib_print(20);&lt;br&gt;    return 0;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;//----- сборка либы -----&lt;br&gt;g++ -Wall lib.cpp -c&lt;br&gt;ar rc libmylib.a lib.o&lt;br&gt;ranlib libmylib.a&lt;br&gt;&lt;br&gt;//----- сборка пользователя -----&lt;br&gt;gcc -Wall -o libuser_c libuser.c -L. -lmylib -lstdc++&lt;br&gt;&lt;br&gt;Вывод на консоль:&lt;br&gt;./libuser_c&lt;br&gt;Constructor MyClass.&lt;br&gt;Hello, boss. Incomming pa</description>
</item>

<item>
    <title>Возмжно ли использовать библиотеку на С++ в проекте на С? (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8273.html#1</link>
    <pubDate>Wed, 20 May 2009 06:44:55 GMT</pubDate>
    <description>&amp;gt;//----- сборка пользователя ----- &lt;br&gt;&amp;gt;gcc -Wall -o libuser_c libuser.c -L. -lmylib &lt;br&gt;&lt;br&gt;-lstdc++&lt;br&gt;</description>
</item>

</channel>
</rss>
