<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : #!/usr/bin/gcc (bis)</title>
	<atom:link href="http://linux-attitude.fr/post/usrbingcc-bis/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-attitude.fr/post/usrbingcc-bis?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=usrbingcc-bis</link>
	<description>Le libre est un état d&#039;esprit</description>
	<lastBuildDate>Fri, 27 Jan 2012 12:46:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>Par : peck</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-8399</link>
		<dc:creator>peck</dc:creator>
		<pubDate>Thu, 09 Sep 2010 13:24:22 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-8399</guid>
		<description>Pas mal, ca donne l&#039;avantage (et l&#039;inconvénient) que la chaine est interpolée et donc qu&#039;on peut utiliser les variables bash. Par contre les codes avec des \ vont être plus durs à écrire.</description>
		<content:encoded><![CDATA[<p>Pas mal, ca donne l&#8217;avantage (et l&#8217;inconvénient) que la chaine est interpolée et donc qu&#8217;on peut utiliser les variables bash. Par contre les codes avec des \ vont être plus durs à écrire.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Wout Mertens</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-8398</link>
		<dc:creator>Wout Mertens</dc:creator>
		<pubDate>Thu, 09 Sep 2010 11:48:57 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-8398</guid>
		<description>Version avec &quot;here doc&quot;:


#!/bin/sh
f(){ gcc -Wall -o /tmp/cscript.$$ -x c - &amp;&amp; /tmp/cscript.$$ &quot;$@&quot;
ret=$? ; rm -f /tmp/cscript.$$ ; exit $ret;}
f &quot;$@&quot; &lt;&lt;EOF_REALLY_JUST_KEEP_GOING
//
// Code C
//
#include 
int main(int argc, char** argv)
{
        printf( &quot;Appel de %s avec %d arguments\n&quot;, argv[0], argc-1 );
        return 0;
}</description>
		<content:encoded><![CDATA[<p>Version avec "here doc":</p>
<p>#!/bin/sh<br />
f(){ gcc -Wall -o /tmp/cscript.$$ -x c &#8211; &amp;&amp; /tmp/cscript.$$ "$@"<br />
ret=$? ; rm -f /tmp/cscript.$$ ; exit $ret;}<br />
f "$@" &lt;&lt;EOF_REALLY_JUST_KEEP_GOING<br />
//<br />
// Code C<br />
//<br />
#include<br />
int main(int argc, char** argv)<br />
{<br />
        printf( "Appel de %s avec %d arguments\n", argv[0], argc-1 );<br />
        return 0;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : #!/usr/bin/clang</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-277</link>
		<dc:creator>#!/usr/bin/clang</dc:creator>
		<pubDate>Mon, 24 Nov 2008 02:50:51 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-277</guid>
		<description>&lt;p&gt;Avec clang/llvm: :)&lt;/p&gt;


&lt;pre&gt;#!/bin/sh
tail -n+3 &quot;$0&quot;&#124;clang -emit-llvm -o -&#124;llvm-as&#124;lli - &quot;$@&quot;; exit $?
//
// Code C
//
#include &lt;stdio.h&gt;
int main(int argc, char** argv)
{
        printf( &quot;Appel de %s avec %d arguments\n&quot;, argv[0], argc-1 );
        return 0;
}&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Avec clang/llvm: :)</p>
<pre>#!/bin/sh
tail -n+3 "$0"|clang -emit-llvm -o -|llvm-as|lli - "$@"; exit $?
//
// Code C
//
#include &lt;stdio.h&gt;
int main(int argc, char** argv)
{
        printf( "Appel de %s avec %d arguments\n", argv[0], argc-1 );
        return 0;
}</pre>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Peck</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-275</link>
		<dc:creator>Peck</dc:creator>
		<pubDate>Sun, 23 Nov 2008 21:32:53 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-275</guid>
		<description>&lt;p&gt;@MadX : pas mal, mais l&#039;inconvénient est que du coup le code C c&#039;est pas distribuable. De plus il prends les paramètres pour gcc et pas pour le binaire (cela peut être un avantage comme un inconvénient).&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>@MadX : pas mal, mais l&#8217;inconvénient est que du coup le code C c&#8217;est pas distribuable. De plus il prends les paramètres pour gcc et pas pour le binaire (cela peut être un avantage comme un inconvénient).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : fred</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-273</link>
		<dc:creator>fred</dc:creator>
		<pubDate>Sat, 22 Nov 2008 11:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-273</guid>
		<description>&lt;p&gt;Sinon, il y a aussi l&#039;option - run de &lt;a href=&quot;http://bellard.org/tcc/&quot;&gt;tcc&lt;/a&gt; .&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;!/usr/local/bin/tcc -run&lt;/li&gt;
&lt;/ol&gt;</description>
		<content:encoded><![CDATA[<p>Sinon, il y a aussi l&#8217;option &#8211; run de <a href="http://bellard.org/tcc/">tcc</a> .</p>
<ol>
<li>!/usr/local/bin/tcc -run</li>
</ol>
]]></content:encoded>
	</item>
	<item>
		<title>Par : MadX</title>
		<link>http://linux-attitude.fr/post/usrbingcc-bis/comment-page-1#comment-272</link>
		<dc:creator>MadX</dc:creator>
		<pubDate>Fri, 21 Nov 2008 18:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://linux-attitude.fr/post/usrbingcc-bis#comment-272</guid>
		<description>&lt;p&gt;C&#039;et marrant, j&#039;avais fait le même genre de truc tout simplement en bash:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# Just-In-Time C Compiling&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# or almost....&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;tmp=/tmp/jitc.$$&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;file=`basename $1&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;bin=$tmp/${file%.c}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;shift&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;mkdir -p $tmp&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;cat $file &#124; tail -n+2 &gt; $tmp/$file&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;gcc -o &quot;$bin&quot; $@ &quot;$tmp/$file&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;chmod +x &quot;$bin&quot;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$bin&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;rm -Rf $tmp&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Jamais testé sur des trucs très complexes par contre :D L&#039;avantage, c&#039;est qu&#039;il suffit de mettre le shebang qui va bien dans le code C, du genre (sur ma machine):&lt;/p&gt;


&lt;p&gt;&lt;code&gt;#!/usr/bin/env /home/madx/dev/jitc/jitc&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#include &lt;stdio.h&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;int main(int argc, char *argv&lt;a href=&quot;&quot;&gt;&lt;/a&gt;) {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;  printf(&quot;Hello, world !\n&quot;);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;  return 0;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>C&#8217;et marrant, j&#8217;avais fait le même genre de truc tout simplement en bash:</p>
<p><code>#!/bin/bash</code><br />
<code># Just-In-Time C Compiling</code><br />
<code># or almost....</code><br />
<code>tmp=/tmp/jitc.$$</code><br />
<code>file=`basename $1</code><br />
<code>bin=$tmp/${file%.c}</code><br />
<code>shift</code><br />
<code>mkdir -p $tmp</code><br />
<code>cat $file | tail -n+2 &gt; $tmp/$file</code><br />
<code>gcc -o "$bin" $@ "$tmp/$file"</code><br />
<code>chmod +x "$bin"</code><br />
<code>$bin</code><br />
<code>rm -Rf $tmp</code></p>
<p>Jamais testé sur des trucs très complexes par contre :D L&#8217;avantage, c&#8217;est qu&#8217;il suffit de mettre le shebang qui va bien dans le code C, du genre (sur ma machine):</p>
<p><code>#!/usr/bin/env /home/madx/dev/jitc/jitc</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>int main(int argc, char *argv<a href=""></a>) {</code><br />
<code>  printf("Hello, world !\n");</code><br />
<code>  return 0;</code><br />
<code>}</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
OK
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (User agent is rejected)
Database Caching using apc
Object Caching 344/348 objects using apc
Content Delivery Network via N/A

Served from: linux-attitude.fr @ 2012-02-04 20:30:20 -->
