<?xml 
version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="en">
	<title>math-linux.com</title>
	<link>http://www.math-linux.com/</link>
	<description>math-linux.com is a website dedicated to Linux,applied mathematics, numerical analysis. Tutorial and help for web developpement and Linux.</description>
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="en">
		<title>How to Get or Extract filename and extension in bash</title>
		<link>http://www.math-linux.com/linux-19/bash/article/how-to-get-or-extract-filename-and-extension-in-bash</link>
		<guid isPermaLink="true">http://www.math-linux.com/linux-19/bash/article/how-to-get-or-extract-filename-and-extension-in-bash</guid>
		<dc:date>2013-03-10T20:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Bash</dc:subject>
		<dc:subject>filename</dc:subject>
		<dc:subject>extension</dc:subject>

		<description>
&lt;p&gt;nsoualem@gold: -&gt; PICTURE=Tux.jpg&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $PICTURE%%.*&lt;br class='autobr' /&gt; Tux&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $PICTURE#*.&lt;br class='autobr' /&gt; jpg &lt;br class='autobr' /&gt;
For multiples extensions files: nsoualem@gold: -&gt; FILE=archive.tar.gz&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $FILE%%.*&lt;br class='autobr' /&gt; archive&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $FILE%.*&lt;br class='autobr' /&gt; archive.tar&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $FILE#*.&lt;br class='autobr' /&gt; tar.gz&lt;br class='autobr' /&gt; nsoualem@gold: -&gt; echo $FILE##*. (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/linux-19/bash/" rel="directory"&gt;Bash&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/Bash" rel="tag"&gt;Bash&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot/filename" rel="tag"&gt;filename&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot/extension" rel="tag"&gt;extension&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; PICTURE=Tux.jpg&lt;br /&gt;
nsoualem@gold: -&gt; echo ${PICTURE%%.*}&lt;br /&gt;
Tux&lt;br /&gt;
nsoualem@gold: -&gt; echo ${PICTURE#*.}&lt;br /&gt;
jpg&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;For multiples extensions files:&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; FILE=archive.tar.gz&lt;br /&gt;
nsoualem@gold: -&gt; echo ${FILE%%.*}&lt;br /&gt;
archive&lt;br /&gt;
nsoualem@gold: -&gt; echo ${FILE%.*}&lt;br /&gt;
archive.tar&lt;br /&gt;
nsoualem@gold: -&gt; echo ${FILE#*.}&lt;br /&gt;
tar.gz&lt;br /&gt;
nsoualem@gold: -&gt; echo ${FILE##*.}&lt;br /&gt;
gz&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>RPM What files have been changed ? &#8212; Verify System Files</title>
		<link>http://www.math-linux.com/linux-19/rpm/article/rpm-what-files-have-been-changed-verify-system-files</link>
		<guid isPermaLink="true">http://www.math-linux.com/linux-19/rpm/article/rpm-what-files-have-been-changed-verify-system-files</guid>
		<dc:date>2013-03-10T14:25:04Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>



		<description>
&lt;p&gt;[user@localhost] rpm -Va --nomtime &lt;br class='autobr' /&gt; S.5..... c /etc/ssh/sshd_config&lt;br class='autobr' /&gt; S.5..... c /etc/updatedb.conf V for verify a for all packages nomtime do not care about modification time &lt;br class='autobr' /&gt;
The format of the output is a string of 8 characters, a possible attribute marker:&lt;br class='autobr' /&gt;
c %config configuration file.&lt;br class='autobr' /&gt; d %doc documentation file.&lt;br class='autobr' /&gt; g %ghost file (i.e. the file contents are not included in the package payload).&lt;br class='autobr' /&gt; l %license license file.&lt;br class='autobr' /&gt; r %readme readme file.&lt;br class='autobr' /&gt;
from the package header, followed by (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/linux-19/rpm/" rel="directory"&gt;RPM&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[user@localhost] rpm -Va --nomtime &lt;br /&gt; S.5..... c /etc/ssh/sshd_config&lt;br /&gt; S.5..... c /etc/updatedb.conf&lt;/code&gt;&lt;/div&gt;&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; V for verify&lt;/li&gt;&lt;li&gt; a for all packages&lt;/li&gt;&lt;li&gt; nomtime do not care about modification time&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The format of the output is a string of 8 characters, a possible attribute marker:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;c&lt;/strong&gt; %config configuration file.&lt;br class='autobr' /&gt;
&lt;strong&gt;d&lt;/strong&gt; %doc documentation file.&lt;br class='autobr' /&gt;
&lt;strong&gt;g&lt;/strong&gt; %ghost file (i.e. the file contents are not included in the package payload).&lt;br class='autobr' /&gt;
&lt;strong&gt;l&lt;/strong&gt; %license license file.&lt;br class='autobr' /&gt;
&lt;strong&gt;r&lt;/strong&gt; %readme readme file.&lt;/p&gt; &lt;p&gt;from the package header, followed by the file name. Each of the 8 characters denotes the result of a comparison of attribute(s) of the file to the value of those attribute(s) recorded in the database. A single &quot;.&quot; (period) means the test passed, while a single &quot;?&quot; (question mark) indicates the test could not be performed (e.g. file permissions prevent reading). Otherwise, the (mnemonically emBoldened) character denotes failure of the corresponding &#8212;verify test:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;S&lt;/strong&gt; file Size differs&lt;br class='autobr' /&gt;
&lt;strong&gt;M&lt;/strong&gt; Mode differs (includes permissions and file type)&lt;br class='autobr' /&gt;
&lt;strong&gt;5&lt;/strong&gt; MD5 sum differs&lt;br class='autobr' /&gt;
&lt;strong&gt;D&lt;/strong&gt; Device major/minor number mismatch&lt;br class='autobr' /&gt;
&lt;strong&gt;L&lt;/strong&gt; readlink(2) path mismatch&lt;br class='autobr' /&gt;
&lt;strong&gt;U&lt;/strong&gt; User ownership differs&lt;br class='autobr' /&gt;
&lt;strong&gt;G&lt;/strong&gt; Group ownership differs&lt;br class='autobr' /&gt;
&lt;strong&gt;T&lt;/strong&gt; mTime differs&lt;br class='autobr' /&gt;
&lt;strong&gt;P&lt;/strong&gt; caPabilities differ&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Back to previous directory in shell cd,$OLDPWD</title>
		<link>http://www.math-linux.com/linux-19/bash/article/back-to-previous-directory-in-shell-cd-oldpwd</link>
		<guid isPermaLink="true">http://www.math-linux.com/linux-19/bash/article/back-to-previous-directory-in-shell-cd-oldpwd</guid>
		<dc:date>2013-03-10T10:18:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>



		<description>
&lt;p&gt;&quot;cd -&quot; works, it will call $OLDPWD i.e. pathname of the previous working directory.&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/linux-19/bash/" rel="directory"&gt;Bash&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&quot;&lt;strong&gt;cd -&lt;/strong&gt;&quot; works, it will call &lt;i&gt;$OLDPWD&lt;/i&gt; i.e. pathname of the previous working directory.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Error &quot;standard in must be a tty&quot; when doing su - $user</title>
		<link>http://www.math-linux.com/linux-19/bash/article/error-standard-in-must-be-a-tty-when-doing-su-user</link>
		<guid isPermaLink="true">http://www.math-linux.com/linux-19/bash/article/error-standard-in-must-be-a-tty-when-doing-su-user</guid>
		<dc:date>2013-03-10T09:57:29Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>



		<description>
&lt;p&gt;When su - $user -c &quot;$command&quot; &amp; &lt;br class='autobr' /&gt;
gives &quot;standard in must be a tty&quot;.&lt;br class='autobr' /&gt;
Edit your /etc/sudoers file, by using visudo command:&lt;br class='autobr' /&gt; # visudo&lt;br class='autobr' /&gt; comment out the line &quot;Defaults requiretty&quot;.&lt;br class='autobr' /&gt;
A most secure way should be to add: Defaults:[username] !requiretty&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/linux-19/bash/" rel="directory"&gt;Bash&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;When&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;su - $user -c &quot;$command&quot; &amp;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;gives &lt;strong&gt;&quot;standard in must be a tty&quot;&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Edit your /etc/sudoers file, by using &lt;strong&gt;visudo&lt;/strong&gt; command:&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;# visudo&lt;/code&gt;&lt;br class='autobr' /&gt;
comment out the line &quot;Defaults requiretty&quot;.&lt;/p&gt; &lt;p&gt;A most secure way should be to add:&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Defaults:[username] !requiretty&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>How to write table in Latex ? \begin{tabular}...\end{tabular}</title>
		<link>http://www.math-linux.com/latex-26/faq/latex-faq/article/how-to-write-table-in-latex-begin-tabular-end-tabular</link>
		<guid isPermaLink="true">http://www.math-linux.com/latex-26/faq/latex-faq/article/how-to-write-table-in-latex-begin-tabular-end-tabular</guid>
		<dc:date>2011-06-19T21:37:36Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Latex</dc:subject>
		<dc:subject>tabular</dc:subject>

		<description>
&lt;p&gt;Environment&lt;br class='autobr' /&gt;
You must use the tabular environment.&lt;br class='autobr' /&gt;
Description of columns Description of the columns is done by the letters r, l or c&lt;br class='autobr' /&gt; r right-justified column&lt;br class='autobr' /&gt; l left-justified column&lt;br class='autobr' /&gt; c centered column&lt;br class='autobr' /&gt;
A column can be defined by a vertical separation | or nothing.&lt;br class='autobr' /&gt;
When several adjacent columns have the same description, a grouping is possible:&lt;br class='autobr' /&gt; *nb_columnsdescription&lt;br class='autobr' /&gt;
Lines description&lt;br class='autobr' /&gt; \hline provides a horizontal line between two lines&lt;br class='autobr' /&gt; The symbol &amp; separates each column. (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/latex-26/faq/latex-faq/" rel="directory"&gt;Latex - FAQ&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/Latex,44" rel="tag"&gt;Latex&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/tabular" rel="tag"&gt;tabular&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Environment&lt;/h3&gt;
&lt;p&gt;You must use the &lt;strong&gt;tabular&lt;/strong&gt; environment.&lt;/p&gt;
&lt;h3 class=&quot;spip&quot;&gt;Description of columns&lt;/h3&gt;
&lt;p&gt;Description of the columns is done by the letters &lt;strong&gt;r, l&lt;/strong&gt; or &lt;strong&gt;c&lt;/strong&gt; &lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;r&lt;/strong&gt; right-justified column&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;l&lt;/strong&gt; left-justified column&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;c&lt;/strong&gt; centered column&lt;/p&gt; &lt;p&gt;A column can be defined by a vertical separation &lt;strong&gt;|&lt;/strong&gt; or nothing.&lt;/p&gt; &lt;p&gt;When several adjacent columns have the same description, a grouping is possible:&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;*{nb_columns}{description}&lt;/code&gt;&lt;/div&gt;&lt;h3 class=&quot;spip&quot;&gt;Lines description&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;\hline&lt;/strong&gt; provides a horizontal line between two lines&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; The symbol &lt;strong&gt;&amp;&lt;/strong&gt; separates each column.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; The symbol &lt;strong&gt;\\&lt;/strong&gt; makes a new line&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;b&gt;\cline{i-j}&lt;/b&gt; horizontal line between columns i and j&lt;/p&gt; &lt;p&gt;Exemple :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{center}&lt;br /&gt; \begin{tabular}{| l | c || r | }&lt;br /&gt; \hline&lt;br /&gt; 1 &amp; 2 &amp; 3 \\ \hline&lt;br /&gt; 4 &amp; 5 &amp; 6 \\ \hline&lt;br /&gt; 7 &amp; 8 &amp; 9 \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;br /&gt; \end{center}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_172 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L115xH88/tab1-642ba.png' width='115' height='88' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{tabular}{|*{2}{c|}l r|}&lt;br /&gt; \hline&lt;br /&gt; math &amp; linux &amp; dot &amp; com \\&lt;br /&gt; center &amp; center&amp; left &amp; right \\&lt;br /&gt; \hline&lt;br /&gt; $\sigma$ &amp; $\alpha$ &amp; $\rho$ &amp; $\theta$ \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_173 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L262xH88/tab2-4a726.png' width='262' height='88' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{tabular}{|r|l|}&lt;br /&gt; \hline&lt;br /&gt; 2B &amp; hexadecimal \\&lt;br /&gt; 53 &amp; octal \\ \cline{2-2}&lt;br /&gt; 101011 &amp; binary \\&lt;br /&gt; \hline \hline&lt;br /&gt; 43 &amp; decimal \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_174 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L212xH111/tab3-bbf3b.png' width='212' height='111' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Comment faire un tableau en Latex ? \begin{tabular}...\end{tabular}</title>
		<link>http://www.math-linux.com/Latex/FAQ/Latex-FAQ/Comment-faire-un-tableau-en-Latex</link>
		<guid isPermaLink="true">http://www.math-linux.com/Latex/FAQ/Latex-FAQ/Comment-faire-un-tableau-en-Latex</guid>
		<dc:date>2011-06-19T13:57:31Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Latex</dc:subject>
		<dc:subject>tabular</dc:subject>

		<description>
&lt;p&gt;Environnement&lt;br class='autobr' /&gt;
Vous devez utiliser l'environnement tabular.&lt;br class='autobr' /&gt;
Description des colonnes La description des colonnes est faite par les lettres r, l ou c&lt;br class='autobr' /&gt; r colonne de texte justifi&#233; &#224; droite&lt;br class='autobr' /&gt; l colonne de texte &#224; gauche&lt;br class='autobr' /&gt; c colonne de texte centr&#233;&lt;br class='autobr' /&gt;
Une colonne peut &#234;tre d&#233;limit&#233;e par une s&#233;paration verticale : | ou rien.&lt;br class='autobr' /&gt;
Lorsque plusieurs colonnes voisines poss&#232;dent la m&#234;me description, un regroupement est possible :&lt;br class='autobr' /&gt; *nb_colonnedescription&lt;br class='autobr' /&gt;
Description des lignes&lt;br class='autobr' /&gt; \hline permet (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/Latex/FAQ/Latex-FAQ/" rel="directory"&gt;Latex - FAQ &lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/Latex,44" rel="tag"&gt;Latex&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/tabular" rel="tag"&gt;tabular&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Environnement&lt;/h3&gt;
&lt;p&gt;Vous devez utiliser l'environnement &lt;strong&gt;tabular&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 class=&quot;spip&quot;&gt;Description des colonnes&lt;/h3&gt;
&lt;p&gt;La description des colonnes est faite par les lettres &lt;strong&gt;r, l &lt;/strong&gt; ou &lt;strong&gt;c&lt;/strong&gt; &lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;r&lt;/strong&gt; colonne de texte justifi&#233; &#224; droite&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;l&lt;/strong&gt; colonne de texte &#224; gauche&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;c&lt;/strong&gt; colonne de texte centr&#233;&lt;/p&gt; &lt;p&gt;Une colonne peut &#234;tre d&#233;limit&#233;e par une s&#233;paration&lt;br class='autobr' /&gt;
verticale : &lt;strong&gt;|&lt;/strong&gt; ou rien.&lt;/p&gt; &lt;p&gt;Lorsque plusieurs colonnes voisines poss&#232;dent la m&#234;me description, un regroupement est possible :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;*{nb_colonne}{description}&lt;/code&gt;&lt;/div&gt;&lt;h3 class=&quot;spip&quot;&gt;Description des lignes&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;strong&gt;\hline&lt;/strong&gt; permet d'obtenir une ligne horizontale entre deux lignes&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; le symbole &lt;strong&gt;&amp;&lt;/strong&gt; s&#233;pare chaque colonne .&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; le symbole &lt;strong&gt;\\&lt;/strong&gt; permet un changement de ligne&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; &lt;b&gt;\cline{i-j}&lt;/b&gt; ligne horizontalle entre les colonnes i et j&lt;/p&gt; &lt;p&gt;Exemple :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{center}&lt;br /&gt; \begin{tabular}{| l | c || r | }&lt;br /&gt; \hline&lt;br /&gt; 1 &amp; 2 &amp; 3 \\ \hline&lt;br /&gt; 4 &amp; 5 &amp; 6 \\ \hline&lt;br /&gt; 7 &amp; 8 &amp; 9 \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;br /&gt; \end{center}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_172 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L115xH88/tab1-642ba.png' width='115' height='88' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{tabular}{|*{2}{c|}l r|}&lt;br /&gt; \hline&lt;br /&gt; math &amp; linux &amp; dot &amp; com \\&lt;br /&gt; center &amp; center&amp; left &amp; right \\&lt;br /&gt; \hline&lt;br /&gt; $\sigma$ &amp; $\alpha$ &amp; $\rho$ &amp; $\theta$ \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_173 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L262xH88/tab2-4a726.png' width='262' height='88' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;latex&quot;&gt;\begin{tabular}{|r|l|}&lt;br /&gt; \hline&lt;br /&gt; 2B &amp; hexadecimal \\&lt;br /&gt; 53 &amp; octal \\ \cline{2-2}&lt;br /&gt; 101011 &amp; binary \\&lt;br /&gt; \hline \hline&lt;br /&gt; 43 &amp; decimal \\&lt;br /&gt; \hline&lt;br /&gt; \end{tabular}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class='spip_document_174 spip_documents spip_documents_center'&gt;
&lt;img src='http://www.math-linux.com/local/cache-vignettes/L212xH111/tab3-bbf3b.png' width='212' height='111' alt=&quot;&quot; style='' /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>gcc / g++ how to dump all preprocessor definitions</title>
		<link>http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/article/gcc-g-how-to-dump-all-preprocessor-definitions</link>
		<guid isPermaLink="true">http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/article/gcc-g-how-to-dump-all-preprocessor-definitions</guid>
		<dc:date>2011-06-13T08:39:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>C++</dc:subject>
		<dc:subject>C</dc:subject>
		<dc:subject>gcc</dc:subject>
		<dc:subject>g++</dc:subject>

		<description>
&lt;p&gt;Compilation option -E -dM gives the result.&lt;br class='autobr' /&gt; g++ -E -dM foo.h&lt;br class='autobr' /&gt;
Instead of the normal output, generate a list of #define directives for all the macros defined during the execution of the preprocessor, including predefined macros. This gives you a way of finding out what is predefined in your version of the preprocessor. Assuming you have no file foo.h, the command&lt;br class='autobr' /&gt; touch foo.h gcc -E -dM foo.h #define __DBL_MIN_EXP__ (-1021) #define __UINT_LEAST16_MAX__ 65535 #define (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/" rel="directory"&gt;FAQ C++ - gcc/g++&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/mot92" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot160" rel="tag"&gt;C&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/gcc" rel="tag"&gt;gcc&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot182" rel="tag"&gt;g++&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Compilation option &lt;code class='spip_code' dir='ltr'&gt;-E -dM&lt;/code&gt; gives the result.&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;g++ -E -dM foo.h&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Instead of the normal output, generate&lt;br class='autobr' /&gt; a list of #define directives for all&lt;br class='autobr' /&gt; the macros defined during the&lt;br class='autobr' /&gt; execution of the preprocessor,&lt;br class='autobr' /&gt; including predefined macros. This&lt;br class='autobr' /&gt; gives you a way of finding out what is&lt;br class='autobr' /&gt; predefined in your version of the&lt;br class='autobr' /&gt; preprocessor. Assuming you have no&lt;br class='autobr' /&gt; file foo.h, the command&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;bash&quot;&gt;touch foo.h&lt;br /&gt; gcc -E -dM foo.h&lt;br /&gt; #define __DBL_MIN_EXP__ (-1021)&lt;br /&gt; #define __UINT_LEAST16_MAX__ 65535&lt;br /&gt; #define __FLT_MIN__ 1.17549435082228750797e-38F&lt;br /&gt; #define __UINT_LEAST8_TYPE__ unsigned char&lt;br /&gt; #define __INTMAX_C(c) c ## L&lt;br /&gt; #define __CHAR_BIT__ 8&lt;br /&gt; #define __UINT8_MAX__ 255&lt;br /&gt; #define __WINT_MAX__ 4294967295U&lt;br /&gt; #define __SIZE_MAX__ 18446744073709551615UL&lt;br /&gt; #define __WCHAR_MAX__ 2147483647&lt;br /&gt; #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1&lt;br /&gt; #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1&lt;br /&gt; #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1&lt;br /&gt; #define __DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L)&lt;br /&gt; #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1&lt;br /&gt; #define __FLT_EVAL_METHOD__ 0&lt;br /&gt; #define __unix__ 1&lt;br /&gt; #define __x86_64 1&lt;br /&gt; #define __UINT_FAST64_MAX__ 18446744073709551615UL&lt;br /&gt; #define __SIG_ATOMIC_TYPE__ int&lt;br /&gt; #define __DBL_MIN_10_EXP__ (-307)&lt;br /&gt; #define __FINITE_MATH_ONLY__ 0&lt;br /&gt; #define __GNUC_PATCHLEVEL__ 2&lt;br /&gt; #define __UINT_FAST8_MAX__ 255&lt;br /&gt; #define __DEC64_MAX_EXP__ 385&lt;br /&gt; #define __INT8_C(c) c&lt;br /&gt; #define __UINT_LEAST64_MAX__ 18446744073709551615UL&lt;br /&gt; #define __SHRT_MAX__ 32767&lt;br /&gt; #define __LDBL_MAX__ 1.18973149535723176502e+4932L&lt;br /&gt; #define __UINT_LEAST8_MAX__ 255&lt;br /&gt; #define __UINTMAX_TYPE__ long unsigned int&lt;br /&gt; #define __linux 1&lt;br /&gt; #define __DEC32_EPSILON__ 1E-6DF&lt;br /&gt; #define __unix 1&lt;br /&gt; #define __UINT32_MAX__ 4294967295U&lt;br /&gt; #define __LDBL_MAX_EXP__ 16384&lt;br /&gt; #define __WINT_MIN__ 0U&lt;br /&gt; #define __linux__ 1&lt;br /&gt; #define __SCHAR_MAX__ 127&lt;br /&gt; #define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)&lt;br /&gt; #define __INT64_C(c) c ## L&lt;br /&gt; #define __DBL_DIG__ 15&lt;br /&gt; #define _FORTIFY_SOURCE 2&lt;br /&gt; #define __SIZEOF_INT__ 4&lt;br /&gt; #define __SIZEOF_POINTER__ 8&lt;br /&gt; #define __USER_LABEL_PREFIX__ &lt;br /&gt; #define __STDC_HOSTED__ 1&lt;br /&gt; #define __LDBL_HAS_INFINITY__ 1&lt;br /&gt; #define __FLT_EPSILON__ 1.19209289550781250000e-7F&lt;br /&gt; #define __LDBL_MIN__ 3.36210314311209350626e-4932L&lt;br /&gt; #define __DEC32_MAX__ 9.999999E96DF&lt;br /&gt; #define __INT32_MAX__ 2147483647&lt;br /&gt; #define __SIZEOF_LONG__ 8&lt;br /&gt; #define __UINT16_C(c) c&lt;br /&gt; #define __DECIMAL_DIG__ 21&lt;br /&gt; #define __gnu_linux__ 1&lt;br /&gt; #define __LDBL_HAS_QUIET_NAN__ 1&lt;br /&gt; #define __GNUC__ 4&lt;br /&gt; #define __MMX__ 1&lt;br /&gt; #define __FLT_HAS_DENORM__ 1&lt;br /&gt; #define __SIZEOF_LONG_DOUBLE__ 16&lt;br /&gt; #define __BIGGEST_ALIGNMENT__ 16&lt;br /&gt; #define __DBL_MAX__ ((double)1.79769313486231570815e+308L)&lt;br /&gt; #define __INT_FAST32_MAX__ 9223372036854775807L&lt;br /&gt; #define __DBL_HAS_INFINITY__ 1&lt;br /&gt; #define __DEC32_MIN_EXP__ (-94)&lt;br /&gt; #define __INT_FAST16_TYPE__ long int&lt;br /&gt; #define __LDBL_HAS_DENORM__ 1&lt;br /&gt; #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL&lt;br /&gt; #define __INT_LEAST32_MAX__ 2147483647&lt;br /&gt; #define __DEC32_MIN__ 1E-95DF&lt;br /&gt; #define __DBL_MAX_EXP__ 1024&lt;br /&gt; #define __DEC128_EPSILON__ 1E-33DL&lt;br /&gt; #define __SSE2_MATH__ 1&lt;br /&gt; #define __PTRDIFF_MAX__ 9223372036854775807L&lt;br /&gt; #define __amd64 1&lt;br /&gt; #define __LONG_LONG_MAX__ 9223372036854775807LL&lt;br /&gt; #define __SIZEOF_SIZE_T__ 8&lt;br /&gt; #define __SIZEOF_WINT_T__ 4&lt;br /&gt; #define __GCC_HAVE_DWARF2_CFI_ASM 1&lt;br /&gt; #define __GXX_ABI_VERSION 1002&lt;br /&gt; #define __FLT_MIN_EXP__ (-125)&lt;br /&gt; #define __INT_FAST64_TYPE__ long int&lt;br /&gt; #define __DBL_MIN__ ((double)2.22507385850720138309e-308L)&lt;br /&gt; #define __LP64__ 1&lt;br /&gt; #define __DECIMAL_BID_FORMAT__ 1&lt;br /&gt; #define __DEC128_MIN__ 1E-6143DL&lt;br /&gt; #define __REGISTER_PREFIX__ &lt;br /&gt; #define __UINT16_MAX__ 65535&lt;br /&gt; #define __DBL_HAS_DENORM__ 1&lt;br /&gt; #define __UINT8_TYPE__ unsigned char&lt;br /&gt; #define __NO_INLINE__ 1&lt;br /&gt; #define __FLT_MANT_DIG__ 24&lt;br /&gt; #define __VERSION__ &quot;4.5.2&quot;&lt;br /&gt; #define __UINT64_C(c) c ## UL&lt;br /&gt; #define __INT32_C(c) c&lt;br /&gt; #define __DEC64_EPSILON__ 1E-15DD&lt;br /&gt; #define __DEC128_MIN_EXP__ (-6142)&lt;br /&gt; #define __INT_FAST32_TYPE__ long int&lt;br /&gt; #define __UINT_LEAST16_TYPE__ short unsigned int&lt;br /&gt; #define unix 1&lt;br /&gt; #define __INT16_MAX__ 32767&lt;br /&gt; #define __SIZE_TYPE__ long unsigned int&lt;br /&gt; #define __UINT64_MAX__ 18446744073709551615UL&lt;br /&gt; #define __INT8_TYPE__ signed char&lt;br /&gt; #define __ELF__ 1&lt;br /&gt; #define __FLT_RADIX__ 2&lt;br /&gt; #define __INT_LEAST16_TYPE__ short int&lt;br /&gt; #define __LDBL_EPSILON__ 1.08420217248550443401e-19L&lt;br /&gt; #define __UINTMAX_C(c) c ## UL&lt;br /&gt; #define __SSE_MATH__ 1&lt;br /&gt; #define __k8 1&lt;br /&gt; #define __SIG_ATOMIC_MAX__ 2147483647&lt;br /&gt; #define __SIZEOF_PTRDIFF_T__ 8&lt;br /&gt; #define __x86_64__ 1&lt;br /&gt; #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF&lt;br /&gt; #define __INT_FAST16_MAX__ 9223372036854775807L&lt;br /&gt; #define __UINT_FAST32_MAX__ 18446744073709551615UL&lt;br /&gt; #define __UINT_LEAST64_TYPE__ long unsigned int&lt;br /&gt; #define __FLT_HAS_QUIET_NAN__ 1&lt;br /&gt; #define __FLT_MAX_10_EXP__ 38&lt;br /&gt; #define __LONG_MAX__ 9223372036854775807L&lt;br /&gt; #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL&lt;br /&gt; #define __FLT_HAS_INFINITY__ 1&lt;br /&gt; #define __UINT_FAST16_TYPE__ long unsigned int&lt;br /&gt; #define __DEC64_MAX__ 9.999999999999999E384DD&lt;br /&gt; #define __CHAR16_TYPE__ short unsigned int&lt;br /&gt; #define __PRAGMA_REDEFINE_EXTNAME 1&lt;br /&gt; #define __INT_LEAST16_MAX__ 32767&lt;br /&gt; #define __DEC64_MANT_DIG__ 16&lt;br /&gt; #define __INT64_MAX__ 9223372036854775807L&lt;br /&gt; #define __UINT_LEAST32_MAX__ 4294967295U&lt;br /&gt; #define __INT_LEAST64_TYPE__ long int&lt;br /&gt; #define __INT16_TYPE__ short int&lt;br /&gt; #define __INT_LEAST8_TYPE__ signed char&lt;br /&gt; #define __DEC32_MAX_EXP__ 97&lt;br /&gt; #define __INT_FAST8_MAX__ 127&lt;br /&gt; #define __INTPTR_MAX__ 9223372036854775807L&lt;br /&gt; #define linux 1&lt;br /&gt; #define __SSE2__ 1&lt;br /&gt; #define __LDBL_MANT_DIG__ 64&lt;br /&gt; #define __DBL_HAS_QUIET_NAN__ 1&lt;br /&gt; #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)&lt;br /&gt; #define __k8__ 1&lt;br /&gt; #define __INTPTR_TYPE__ long int&lt;br /&gt; #define __UINT16_TYPE__ short unsigned int&lt;br /&gt; #define __WCHAR_TYPE__ int&lt;br /&gt; #define __SIZEOF_FLOAT__ 4&lt;br /&gt; #define __UINTPTR_MAX__ 18446744073709551615UL&lt;br /&gt; #define __DEC64_MIN_EXP__ (-382)&lt;br /&gt; #define __INT_FAST64_MAX__ 9223372036854775807L&lt;br /&gt; #define __FLT_DIG__ 6&lt;br /&gt; #define __UINT_FAST64_TYPE__ long unsigned int&lt;br /&gt; #define __INT_MAX__ 2147483647&lt;br /&gt; #define __amd64__ 1&lt;br /&gt; #define __INT64_TYPE__ long int&lt;br /&gt; #define __FLT_MAX_EXP__ 128&lt;br /&gt; #define __DBL_MANT_DIG__ 53&lt;br /&gt; #define __INT_LEAST64_MAX__ 9223372036854775807L&lt;br /&gt; #define __DEC64_MIN__ 1E-383DD&lt;br /&gt; #define __WINT_TYPE__ unsigned int&lt;br /&gt; #define __UINT_LEAST32_TYPE__ unsigned int&lt;br /&gt; #define __SIZEOF_SHORT__ 2&lt;br /&gt; #define __SSE__ 1&lt;br /&gt; #define __LDBL_MIN_EXP__ (-16381)&lt;br /&gt; #define __INT_LEAST8_MAX__ 127&lt;br /&gt; #define __SSP__ 1&lt;br /&gt; #define __LDBL_MAX_10_EXP__ 4932&lt;br /&gt; #define __DBL_EPSILON__ ((double)2.22044604925031308085e-16L)&lt;br /&gt; #define _LP64 1&lt;br /&gt; #define __UINT8_C(c) c&lt;br /&gt; #define __INT_LEAST32_TYPE__ int&lt;br /&gt; #define __SIZEOF_WCHAR_T__ 4&lt;br /&gt; #define __UINT64_TYPE__ long unsigned int&lt;br /&gt; #define __INT_FAST8_TYPE__ signed char&lt;br /&gt; #define __DEC_EVAL_METHOD__ 2&lt;br /&gt; #define __UINT32_C(c) c ## U&lt;br /&gt; #define __INTMAX_MAX__ 9223372036854775807L&lt;br /&gt; #define __FLT_DENORM_MIN__ 1.40129846432481707092e-45F&lt;br /&gt; #define __INT8_MAX__ 127&lt;br /&gt; #define __UINT_FAST32_TYPE__ long unsigned int&lt;br /&gt; #define __CHAR32_TYPE__ unsigned int&lt;br /&gt; #define __FLT_MAX__ 3.40282346638528859812e+38F&lt;br /&gt; #define __INT32_TYPE__ int&lt;br /&gt; #define __SIZEOF_DOUBLE__ 8&lt;br /&gt; #define __FLT_MIN_10_EXP__ (-37)&lt;br /&gt; #define __INTMAX_TYPE__ long int&lt;br /&gt; #define __DEC128_MAX_EXP__ 6145&lt;br /&gt; #define __GNUC_MINOR__ 5&lt;br /&gt; #define __UINTMAX_MAX__ 18446744073709551615UL&lt;br /&gt; #define __DEC32_MANT_DIG__ 7&lt;br /&gt; #define __DBL_MAX_10_EXP__ 308&lt;br /&gt; #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L&lt;br /&gt; #define __INT16_C(c) c&lt;br /&gt; #define __STDC__ 1&lt;br /&gt; #define __PTRDIFF_TYPE__ long int&lt;br /&gt; #define __UINT32_TYPE__ unsigned int&lt;br /&gt; #define __UINTPTR_TYPE__ long unsigned int&lt;br /&gt; #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD&lt;br /&gt; #define __DEC128_MANT_DIG__ 34&lt;br /&gt; #define __LDBL_MIN_10_EXP__ (-4931)&lt;br /&gt; #define __SIZEOF_LONG_LONG__ 8&lt;br /&gt; #define __LDBL_DIG__ 18&lt;br /&gt; #define __UINT_FAST16_MAX__ 18446744073709551615UL&lt;br /&gt; #define __GNUC_GNU_INLINE__ 1&lt;br /&gt; #define __UINT_FAST8_TYPE__ unsigned char&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;will show all the predefined macros.&lt;/p&gt; &lt;p&gt;If you use&lt;i&gt; -dM&lt;/i&gt; without the &lt;i&gt;-E&lt;/i&gt; option,&lt;br class='autobr' /&gt; &lt;i&gt;-dM&lt;/i&gt; is interpreted as a synonym for &lt;i&gt;-fdump-rtl-mach&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Reference: &lt;a href=&quot;http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#index-dM-953&quot; class='spip_out' rel='external'&gt;http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#index-dM-953&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Undefined Symbol ___gxx_personality_v0</title>
		<link>http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/article/undefined-symbol-___gxx_personality_v0</link>
		<guid isPermaLink="true">http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/article/undefined-symbol-___gxx_personality_v0</guid>
		<dc:date>2011-06-13T07:35:57Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>C++</dc:subject>
		<dc:subject>compilation</dc:subject>
		<dc:subject>C</dc:subject>
		<dc:subject>gcc</dc:subject>
		<dc:subject>g++</dc:subject>

		<description>
&lt;p&gt;Probably you try to compile a C++ code with gcc instead of g++ gcc test.cpp&lt;br class='autobr' /&gt; Undefined symbols:&lt;br class='autobr' /&gt; &quot;___gxx_personality_v0&quot;, referenced from ...&lt;br class='autobr' /&gt; ... &lt;br class='autobr' /&gt;
Use g++ instead: g++ test.cpp&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/" rel="directory"&gt;FAQ C++ - gcc/g++&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/mot92" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/compilation,101" rel="tag"&gt;compilation&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot160" rel="tag"&gt;C&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/gcc" rel="tag"&gt;gcc&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot182" rel="tag"&gt;g++&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Probably you try to compile a C++ code with gcc instead of g++&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;bash&quot;&gt;gcc test.cpp&lt;br /&gt; Undefined symbols:&lt;br /&gt; &quot;___gxx_personality_v0&quot;, referenced from ...&lt;br /&gt; ...&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Use g++ instead:&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;bash&quot;&gt;g++ test.cpp&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>g++ compilation option -Weffc++</title>
		<link>http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/g-compilation-option-Weffc</link>
		<guid isPermaLink="true">http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/g-compilation-option-Weffc</guid>
		<dc:date>2011-06-12T20:55:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>C++</dc:subject>
		<dc:subject>compilation</dc:subject>
		<dc:subject>g++</dc:subject>

		<description>
&lt;p&gt;The following -W... options is not affected by -Wall.&lt;br class='autobr' /&gt; -Weffc++ (C++ and Objective-C++ only)&lt;br class='autobr' /&gt; Warn about violations of the following style guidelines from Scott Meyers' Effective C++ book:&lt;br class='autobr' /&gt; Item 11: Define a copy constructor and an assignment operator for classes with dynamically allocated memory.&lt;br class='autobr' /&gt; Item 12: Prefer initialization to assignment in constructors.&lt;br class='autobr' /&gt; Item 14: Make destructors virtual in base classes.&lt;br class='autobr' /&gt; Item 15: Have operator= return a reference to *this.&lt;br class='autobr' /&gt; Item 23: (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/" rel="directory"&gt;FAQ C++ - gcc/g++&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/mot92" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/compilation,101" rel="tag"&gt;compilation&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot182" rel="tag"&gt;g++&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;The following -W... options is not affected by -Wall.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; -Weffc++ (C++ and Objective-C++ only)&lt;br class='autobr' /&gt; Warn about violations of the following style guidelines from Scott Meyers' Effective C++ book:&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 11: Define a copy constructor and an assignment operator for classes with dynamically allocated memory.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 12: Prefer initialization to assignment in constructors.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 14: Make destructors virtual in base classes.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 15: Have operator= return a reference to *this.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 23: Don't try to return a reference when you must return an object.&lt;/p&gt; &lt;p&gt; Also warn about violations of the following style guidelines from Scott Meyers' More Effective C++ book:&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 6: Distinguish between prefix and postfix forms of increment and decrement operators.&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='' /&gt; Item 7: Never overload &amp;&amp;, ||, or ,.&lt;/p&gt; &lt;p&gt; When selecting this option, be aware that the standard library headers do not obey all of these guidelines; use `grep -v' to filter out those warnings.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>gcc /g++ Why some variables are not detected as not used during compilation?</title>
		<link>http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/gcc-g-Why-some-variables-are-not</link>
		<guid isPermaLink="true">http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/gcc-g-Why-some-variables-are-not</guid>
		<dc:date>2011-06-12T19:07:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>C++</dc:subject>
		<dc:subject>compilation</dc:subject>
		<dc:subject>C</dc:subject>
		<dc:subject>gcc</dc:subject>
		<dc:subject>g++</dc:subject>

		<description>
&lt;p&gt;In the following example, variable x is not detected as not used #include &lt;vector&gt;&lt;br class='autobr' /&gt; int main()&lt;br class='autobr' /&gt; std::vector&lt; double &gt; x;&lt;br class='autobr' /&gt; int k,l;&lt;br class='autobr' /&gt; g++ -Wall test.cpp&lt;br class='autobr' /&gt; test.cpp: In function 'int main()':&lt;br class='autobr' /&gt; test.cpp:6:6: warning: unused variable 'k'&lt;br class='autobr' /&gt; test.cpp:6:8: warning: unused variable 'l' &lt;br class='autobr' /&gt;
Actually, warnings are only declared for built in types (bool, int, float, double, etc ...). Compiler can't determine if removing declaration of x would change the behaviour of (...)&lt;/p&gt;


-
&lt;a href="http://www.math-linux.com/rubrique36/FAQ-C/FAQ-C-gcc-g/" rel="directory"&gt;FAQ C++ - gcc/g++&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/mot92" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/compilation,101" rel="tag"&gt;compilation&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot160" rel="tag"&gt;C&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/gcc" rel="tag"&gt;gcc&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/mot182" rel="tag"&gt;g++&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;In the following example, variable &lt;i&gt;x&lt;/i&gt; is not detected as not used&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;cpp&quot;&gt;#include &lt;vector&gt;&lt;br /&gt; &lt;br /&gt; int main()&lt;br /&gt; {&lt;br /&gt; std::vector&lt; double &gt; x;&lt;br /&gt; int k,l;&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code class=&quot;bash&quot;&gt;g++ -Wall test.cpp&lt;br /&gt; test.cpp: In function 'int main()':&lt;br /&gt; test.cpp:6:6: warning: unused variable 'k'&lt;br /&gt; test.cpp:6:8: warning: unused variable 'l'&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Actually, warnings are only declared for built in types (bool, int, float, double, etc ...). Compiler can't determine if removing declaration of &lt;i&gt;x&lt;/i&gt; would change the behaviour of semantics program.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
