<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>struggling with initialisation using CMake on arch</title>
		<link>http://www.allegro.cc/forums/view/617784</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 21 Mar 2019 01:40:43 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve been trying all day to get allegro to work, ran into a few problems but it was mostly ok<br />but now i have a another one which ive managed to indentify but cant solve</p><p>I&#39;m using the gcc compiler but i get the same problem with make and g++ aswell</p><p>To put it simply the package on the AUR conflicts with the one from github. I&#39;m aware that the header version is 5.2.6 but the library is 5.2.4.1, and im pretty sure this is whats causing al_init to return false. However when i remove the aur package, nothing works at all. even after reinstalling with cmake</p><p>theres also something to do with pkg-config because &#39;pkg-config --list-all | grep allegro&#39; returns a bunch of packages with the AUR package isntalled, but nothing when i remove it. but i really dont understand what pkg-config is or what it does. installed allegro with &#39;yay -S allegro&#39; if thats relevant</p><p>Anyway, I cant find a solution anywhere, so thats why im here. Perhaps someone can help?</p><p>thanks for reading. be really nice if you could help me</p><p>also, unimportant, but it would be wonderful if someone could show me how to compile without having to add &#39;pkg-config blahblahblah...&#39; after gcc</p><p>$gcc main.cpp -o main `pkg-config --libs allegro-5 allegro_font-5 allegro_ttf-5 allegro_main-5 allegro_primitives-5 allegro_color-5 allegro_image-5 allegro_dialog-5`
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 1</span>main.cpp: In function <span class="s">'int main()'</span><span class="k2">:</span>
<span class="number"> 2</span>main.cpp:18:93: warning: passing NULL to non-pointer argument <span class="n">6</span> of <span class="s">'int al_show_native_message_box(ALLEGRO_DISPLAY*, const char*, const char*, const char*, const char*, int)'</span> <span class="k2">[</span><span class="k3">-</span>Wconversion-null<span class="k2">]</span>
<span class="number"> 3</span>     <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">"failed to initialize allegro!"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 4</span>                                                                                             ^
<span class="number"> 5</span>main.cpp:26:93: warning: passing NULL to non-pointer argument <span class="n">6</span> of <span class="s">'int al_show_native_message_box(ALLEGRO_DISPLAY*, const char*, const char*, const char*, const char*, int)'</span> <span class="k2">[</span><span class="k3">-</span>Wconversion-null<span class="k2">]</span>
<span class="number"> 6</span>     <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">"failed to initialize display!"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 7</span>                                                                                             ^
</div></div><p>
$./main
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>Library version: <span class="n">5</span>.<span class="n">2</span>.<span class="n">4</span>.<span class="n">1</span>
<span class="number">  2</span>Header version: <span class="n">5</span>.<span class="n">2</span>.<span class="n">6</span> <span class="k2">(</span>GIT<span class="k2">)</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k2">(</span>process:6913<span class="k2">)</span><span class="k2">:</span> Gtk-WARNING <span class="k3">*</span><span class="k3">*</span><span class="k2">:</span> <span class="n">17</span><span class="k2">:</span><span class="n">43</span><span class="k2">:</span><span class="n">46</span>.<span class="n">620</span><span class="k2">:</span> Locale <span class="k1">not</span> supported by C library.
<span class="number">  5</span>        Using the fallback <span class="s">'C'</span> locale.
<span class="number">  6</span>
<span class="number">  7</span><span class="k2">(</span>main:6913<span class="k2">)</span><span class="k2">:</span> Gtk-WARNING <span class="k3">*</span><span class="k3">*</span><span class="k2">:</span> <span class="n">17</span><span class="k2">:</span><span class="n">43</span><span class="k2">:</span><span class="n">46</span>.<span class="n">630</span><span class="k2">:</span> Unable to locate theme engine in module_path: <span class="s">"adwaita"</span>,
<span class="number">  8</span>Segmentation fault <span class="k2">(</span>core dumped<span class="k2">)</span>
</div></div><p>

edit:<br />just to confirm, after removing the package &#39;yay -R allegro&#39;, compiling using the same command as above, returns
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>Package allegro-5 was <span class="k1">not</span> found in the pkg-config search path.
<span class="number">  2</span>Perhaps you should add the directory containing `allegro-5.pc<span class="s">'</span>
<span class="number">  3</span><span class="s">to the PKG_CONFIG_PATH environment variable</span>
<span class="number">  4</span><span class="s">Package '</span>allegro-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number">  5</span><span class="s">Package '</span>allegro_font-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number">  6</span><span class="s">Package '</span>allegro_ttf-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number">  7</span><span class="s">Package '</span>allegro_main-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number">  8</span><span class="s">Package '</span>allegro_primitives-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number">  9</span><span class="s">Package '</span>allegro_color-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number"> 10</span><span class="s">Package '</span>allegro_image-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number"> 11</span><span class="s">Package '</span>allegro_dialog-5<span class="s">', required by '</span>virtual:world<span class="s">', not found</span>
<span class="number"> 12</span><span class="s">main.cpp: In function '</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span><span class="s">':</span>
<span class="number"> 13</span><span class="s">main.cpp:18:93: warning: passing NULL to non-pointer argument 6 of '</span><span class="k1">int</span> <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">int</span><span class="k2">)</span><span class="s">' [-Wconversion-null]</span>
<span class="number"> 14</span><span class="s">     al_show_native_message_box(NULL, NULL, NULL, "failed to initialize allegro!", NULL, NULL);</span>
<span class="number"> 15</span><span class="s">                                                                                             ^</span>
<span class="number"> 16</span><span class="s">main.cpp:26:93: warning: passing NULL to non-pointer argument 6 of '</span><span class="k1">int</span> <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>, <span class="k1">int</span><span class="k2">)</span><span class="s">' [-Wconversion-null]</span>
<span class="number"> 17</span><span class="s">     al_show_native_message_box(NULL, NULL, NULL, "failed to initialize display!", NULL, NULL);</span>
<span class="number"> 18</span><span class="s">                                                                                             ^</span>
<span class="number"> 19</span><span class="s">/usr/bin/ld: /tmp/ccunZ0zw.o: in function `main'</span><span class="k2">:</span>
<span class="number"> 20</span>main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0x9</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_get_allegro_version"><span class="a">al_get_allegro_version</span></a><span class="s">'</span>
<span class="number"> 21</span><span class="s">/usr/bin/ld: main.cpp:(.text+0x92): undefined reference to `al_install_system'</span>
<span class="number"> 22</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0xc0</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="s">'</span>
<span class="number"> 23</span><span class="s">/usr/bin/ld: main.cpp:(.text+0xcf): undefined reference to `al_create_display'</span>
<span class="number"> 24</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0x101</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="s">'</span>
<span class="number"> 25</span><span class="s">/usr/bin/ld: main.cpp:(.text+0x114): undefined reference to `al_destroy_display'</span>
<span class="number"> 26</span>collect2: error: ld returned <span class="n">1</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a> status
</div></div><p>

after this, i ran... (in ~/build/)
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 1</span>cmake ~<span class="k3">/</span>allegro5<span class="k3">/</span>
<span class="number"> 2</span>make <span class="k3">-</span>j12
<span class="number"> 3</span>sudo make <span class="k3">-</span>j12 install
</div></div><p>
with no errors!</p><p>but compiling still fails :/</p><p>edit2:</p><p>ran
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 1</span>PKG_CONFIG_PATH<span class="k3">=</span>$PKG_CONFIG_PATH:~<span class="k3">/</span>build<span class="k3">/</span>lib<span class="k3">/</span>pkgconfig
</div></div><p>
still nothing tho
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Joshua Cassel)</author>
		<pubDate>Wed, 20 Mar 2019 23:03:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, never used arch linux before but I can try to help.</p><p>Since you used &#39;yay -S allegro&#39; I assume you have the dependecies installed.</p><p>You can build allegro yourself rather easily on linux once all the dependent packages are installed.</p><p>Install GIT and CMake.</p><p>Clone allegro from git. See here : <a href="https://liballeg.org/git.html">https://liballeg.org/git.html</a></p><p>Once you have allegro cloned, build using cmake-gui or ccmake. Make sure to enable the WANT_MONOLITH option so you don&#39;t have to link to 10 different libraries.</p><p>After that, you can use pkg-config or link directly to the monolith library. By default, allegro installs to /usr/local .
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 20 Mar 2019 23:56:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you so much, I didnt realise that i needed to use ccmake and not cmake. <br />however, im not sure if im doing the last step correctly</p><p>I added the pkgconfig folder in <i>usr/local to pkgconfig using &#39;CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig</i>&#39; but there are still no files named allegro in &#39;pkg-config --list-all&#39; and i still get these errors when compiling.<br />edit: forgot to add errors
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>main.cpp: In function <span class="s">'int main()'</span><span class="k2">:</span>
<span class="number">  2</span>main.cpp:18:93: warning: passing NULL to non-pointer argument <span class="n">6</span> of <span class="s">'int al_show_native_message_box(ALLEGRO_DISPLAY*, const char*, const char*, const char*, const char*, int)'</span> <span class="k2">[</span><span class="k3">-</span>Wconversion-null<span class="k2">]</span>
<span class="number">  3</span>     <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">"failed to initialize allegro!"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>                                                                                             ^
<span class="number">  5</span>main.cpp:26:93: warning: passing NULL to non-pointer argument <span class="n">6</span> of <span class="s">'int al_show_native_message_box(ALLEGRO_DISPLAY*, const char*, const char*, const char*, const char*, int)'</span> <span class="k2">[</span><span class="k3">-</span>Wconversion-null<span class="k2">]</span>
<span class="number">  6</span>     <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">"failed to initialize display!"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>                                                                                             ^
<span class="number">  8</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: <span class="k3">/</span>tmp<span class="k3">/</span>ccVjHEH4.o: in function `main<span class="s">':</span>
<span class="number">  9</span><span class="s">main.cpp:(.text+0x9): undefined reference to `al_get_allegro_version'</span>
<span class="number"> 10</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0x92</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_install_system"><span class="a">al_install_system</span></a><span class="s">'</span>
<span class="number"> 11</span><span class="s">/usr/bin/ld: main.cpp:(.text+0xc0): undefined reference to `al_show_native_message_box'</span>
<span class="number"> 12</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0xcf</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="s">'</span>
<span class="number"> 13</span><span class="s">/usr/bin/ld: main.cpp:(.text+0x101): undefined reference to `al_show_native_message_box'</span>
<span class="number"> 14</span><span class="k3">/</span>usr<span class="k3">/</span>bin<span class="k3">/</span>ld: main.cpp:<span class="k2">(</span>.text<span class="k3">+</span><span class="n">0x114</span><span class="k2">)</span><span class="k2">:</span> undefined reference to `<a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="s">'</span>
<span class="number"> 15</span><span class="s">collect2: error: ld returned 1 exit status</span>
<span class="number"> 16</span><span class="s"></span>
</div></div><p>

I&#39;m fairly sure i did, however, use ccmake correctly</p><p>edit2:<br />so i just need to link to the monolith library, right? <br />how do i do that?</p><p>edit3:<br />btw i used &#39;ccmake -DCMAKE_INSTALL_PREFIX=/usr ~/allegro5/&#39; and followed the wiki&#39;s instructions on how to use it. making sure i enabled WANT_MONOLITH</p><p>edit4:<br />realised that in order to add the libraries, i need to add <i>usr/local/lib</i> and /usr/local/include to pkg-config</p><p>now, the allegro libs can be found in pkg-config, along with monolith<br />only problem now, is that the when compiling with </p><p>$gcc main.cpp -o main `pkg-config --libs allegro_monolith-5`</p><p>i get the error &#39;/usr/bin/ld: cannot find -lallegro_monolith&#39;</p><p>edit6:</p><p>also compiling with the command i used at the beginning works just fine, however i now get the error while running the compiled program: &#39;error while loading shared libraries: liballegro_ttf.so.5.2: cannot open shared object file: No such file<br />or directory&#39;</p><p>edit7:<br />finally working <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /><br />not a perfect setup, but i can now run ./main using &#39;LD_LIBRARY_PATH=&quot;/usr/local/lib&quot; ./<br />main&#39;</p><p>smh AUR update your packages
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Joshua Cassel)</author>
		<pubDate>Thu, 21 Mar 2019 00:24:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, looks like you got it sorted. Can be quite confusing the first time.</p><p>Allegro&#39;s .pc files will be installed the same place you specified CMAKE_INSTALL_PREFIX, usually in their own pkgconfig folder.</p><p>As you found out, you can set PKG_CONFIG_PATH and LD_LIBRARY_PATH to get everything building and running.</p><p>Congrats on figuring it out. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 21 Mar 2019 01:40:43 +0000</pubDate>
	</item>
</rss>
