{"id":2543,"date":"2017-10-05T16:59:58","date_gmt":"2017-10-05T21:59:58","guid":{"rendered":"http:\/\/www.logikalsolutions.com\/wordpress\/?p=2543"},"modified":"2021-02-13T14:56:49","modified_gmt":"2021-02-13T20:56:49","slug":"how-far-weve-come-pt-18","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/","title":{"rendered":"How Far We&#8217;ve Come &#8211; Pt. 18"},"content":{"rendered":"<p>The Internet has no shortage of &#8220;how to cross compile Qt for Pi Web pages.&#8221; Most of them kind of were &#8220;right enough&#8221; at one point in time for a subset of people. Most of them don&#8217;t bother to tell you what the host system is. I suspect many of them used a 32-bit host system which masked most of the problems with their instructions. The instructions <a href=\"https:\/\/www.ics.com\/blog\/configuring-qt-creator-raspberry-pi\">found here<\/a> definitely fall into this category. How do I know that? I followed them for a bit because I liked not having to loop mount an image. Really weird things can happen when images for a different CPU are loop mounted and something goes wrong. Another reason I followed them is that they appeared to be an update for the <a href=\"https:\/\/wiki.qt.io\/RaspberryPi2EGLFS\">official Qt Wiki article using the same method<\/a>.<\/p>\n<p>Yes, everyone wants to believe the instructions they found are a fine Cuban cigar. On the Internet, even when they are &#8220;just posted today&#8221; they tend to be closer to a Lucky Strike someone ripped the filter off of then left lay on a shelf for 7+ years.<\/p>\n<p>When I got to the configure step I tried to use this:<\/p>\n<p>\u00a0<\/p>\n<pre>.\/configure -release -opengl es2 \\\n-opensource -confirm-license -plugin-sql-psql -qt-sql-sqlite \\\n-device linux-rasp-pi2-g++ \\\n-device-option CROSS_COMPILE=~\/piBuild\/pitools\/arm-bcm2708\/gcc-linaro-arm-linux-gnueabihf-raspbian\/bin\/arm-linux-gnueabihf- \\\n-sysroot ~\/piBuild\/sysroot -prefix \/usr\/local\/qt5pi \\\n-extprefix ~\/piBuild\/qt5pi \\\n-hostprefix ~\/piBuild\/qt5 -v\n<\/pre>\n<p>I wanted to be sure we compiled support for the PostgreSQL plugin and that we used the SQLite which came with Qt. The first signs of problems came early on:<\/p>\n<pre>psql.cpp:40:22: fatal error: libpq-fe.h: No such file or directory\n #include \"libpq-fe.h\"\n                      ^\ncompilation terminated.\nMakefile:198: recipe for target 'psql.o' failed\nmake: *** [psql.o] Error 1\nPostgreSQL disabled.\nPostgreSQL support cannot be enabled due to functionality tests!\n Turn on verbose messaging (-v) to \/home\/roland\/piBuild\/qt-everywhere-opensource-src-5.7.1\/qtbase\/configure to see th\n<\/pre>\n<p>Given I had quite a few distractions, I did some searching to see which Debian package provided that header and installed it. Yes, it&#8217;s okay. You can say it out loud. I&#8217;m stupid some times. I should have known right then and there this build procedure wasn&#8217;t worthless shit. I should have also went to the bottom of that post and looked at all of the comments from people trying to build on a 64-bit host asking if this procedure was ever tested.<\/p>\n<pre>sudo apt install libpq-dev<\/pre>\n<p>Stubborn can be good, but stubborn and stupid tends not to be a winning combination.<\/p>\n<p>Adding insult to injury, this very site where I wish to write posts about this started having severe intestinal disorders so I was fighting that while working on this and getting on with my life.<\/p>\n<p>I warned you at the start of this series, you aren&#8217;t getting one of my clean and polished books where I worked through everything the first time, then re-tested on a clean system so I knew everything I put in there worked. You are getting a merger of hundreds of note files taken while I was figuring it out. The bad part here is I&#8217;ve been away from this for a couple of weeks so you really are getting a compilation of note files I could find rather than a direct flow of conscious.<\/p>\n<p>This build attempt proves what a horrible debacle these instructions are. I installed that package on both the Pi and my 64-bit compilation machine. I redid all of the rsync stuff and reran the fixup script before launching another attempt at getting PostgreSQL to work.<\/p>\n<pre>checking for PostgreSQL... \n\/home\/roland\/piBuild\/pitools\/arm-bcm2708\/gcc-linaro-arm-linux-gnueabihf-raspbian\/bin\/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=\/home\/roland\/piBuild\/sysroot -O2 -Wall -W -fPIC -I. -I\/usr\/include\/postgresql -I..\/..\/..\/mkspecs\/devices\/linux-rasp-pi2-g++ -o psql.o psql.cpp\n\/home\/roland\/piBuild\/pitools\/arm-bcm2708\/gcc-linaro-arm-linux-gnueabihf-raspbian\/bin\/arm-linux-gnueabihf-g++ -Wl,-rpath-link,\/home\/roland\/piBuild\/sysroot\/opt\/vc\/lib -Wl,-rpath-link,\/home\/roland\/piBuild\/sysroot\/usr\/lib\/arm-linux-gnueabihf -Wl,-rpath-link,\/home\/roland\/piBuild\/sysroot\/lib\/arm-linux-gnueabihf -mfloat-abi=hard -Wl,-O1 -o psql psql.o --sysroot=\/home\/roland\/piBuild\/sysroot -L\/usr\/lib\/x86_64-linux-gnu -lpq \n\/usr\/lib\/x86_64-linux-gnu\/libpq.so: file not recognized: File format not recognized\ncollect2: error: ld returned 1 exit status\nMakefile:92: recipe for target 'psql' failed\nmake: *** [psql] Error 1\nPostgreSQL disabled.\nPostgreSQL support cannot be enabled due to functionality tests!\n Turn on verbose messaging (-v) to \/home\/roland\/piBuild\/qt-everywhere-opensource-src-5.7.1\/qtbase\/configure to see the final report.\n If you believe this message is in error you may use the continue\n switch (-continue) to \/home\/roland\/piBuild\/qt-everywhere-opensource-src-5.7.1\/qtbase\/configure to continue.\nroland@roland-desktop:~\/piBuild\/qt-everywhere-opensource-src-5.7.1$ cd \/\nroland@roland-desktop:\/$ sudo find -iname libpq.so\n[sudo] password for roland: \n.\/usr\/lib\/x86_64-linux-gnu\/libpq.so\n.\/home\/roland\/piBuild\/sysroot\/usr\/lib\/arm-linux-gnueabihf\/libpq.so\n\n<\/pre>\n<p>You will note the library from the Pi is exactly where it should be. Either the instructions for configuring the environment are incorrect on the blog\/wiki, or the cross compile configure scripts are incorrect.<\/p>\n<p>Leaving PostgreSQL out of it, the build <strong>still<\/strong> crashes.<\/p>\n<pre>\/home\/roland\/piBuild\/qt-everywhere-opensource-src-5.7.1\/qtbase\/include\/QtCore\/..\/..\/src\/corelib\/tools\/qhash.h:235:45: warning: cast from \u2018QHashData::Node*\u2019 to \u2018QHash&lt;QString, QVariant&gt;::Node* {aka QHashNode&lt;QString, QVariant&gt;*}\u2019 increases required alignment of target type [-Wcast-align]\n return reinterpret_cast&lt;Node *&gt;(node);\n ^\nmake[4]: *** [invoke_ninja] Error 1\nmake[3]: *** [sub-gyp_run-pro-make_first] Error 2\nmake[2]: *** [sub-core-make_first] Error 2\nmake[1]: *** [sub-src-make_first] Error 2\nmake: *** [module-qtwebengine-make_first] Error 2\nmake: *** Waiting for unfinished jobs....<\/pre>\n<p>As I said, neither wiki page nor the blog stated what their build machine was. They also didn&#8217;t state what was installed. There was one telling line in <a href=\"https:\/\/www.ics.com\/blog\/configuring-qt-creator-raspberry-pi\">this post<\/a> though.<\/p>\n<blockquote>\n<p>Make sure your Qt Creator installation works for native development\u00a0using a native Qt version running on your desktop, as this is a\u00a0prerequisite to extending it to work for\u00a0embedded development.<\/p>\n<\/blockquote>\n<p>While it is all well and good to have <em>some<\/em> development machine which built and ran a desktop version of your application, it is a rather horrible idea to put together cross compile instructions based on that same machine. This would never fly in an FDA regulated environment where you have to be able to create <em>from scorched earth<\/em> your cross compile environment.<\/p>\n<p>I finally used this configure command.<\/p>\n<pre>.\/configure -release -opengl es2 -opensource -confirm-license -qt-sql-sqlite -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~\/piBuild\/pitools\/arm-bcm2708\/gcc-linaro-arm-linux-gnueabihf-raspbian\/bin\/arm-linux-gnueabihf- -sysroot ~\/piBuild\/sysroot -prefix \/usr\/local\/qt5pi -extprefix ~\/piBuild\/qt5pi -hostprefix ~\/piBuild\/qt5 -v -skip webengine<\/pre>\n<p>While this does cleanly build, our PostgreSQL test application does not.<\/p>\n<p>\u00a0<\/p>\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-17\/\">&lt;Previous-part<\/a><\/p>\n\n\n\n<p>Related Posts:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.theminimumyouneedtoknow.com\/qt_book.html\">QT Database book<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.theminimumyouneedtoknow.com\/agile_book.html\">AGILE book<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qdebug-output\/\">Where Did My QDebug Output Go?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/moc-parse-error-at-std\/\">MOC Parse Error at &#8220;std&#8221;<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/kde-neon-distcc-and-qt\/\">KDE Neon &#8211; Distcc and Qt<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/copperspice-and-diamond\/\">CopperSpice Experiments<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qtcreator-no-qmlscene-installed\/\">QtCreator &#8211; No qmlScene installed<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/so-you-cant-get-your-qt-models-to-work-with-qml\/\">So You Can&#8217;t Get Your Models to Work with QML?<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Internet has no shortage of &#8220;how to cross compile Qt for Pi Web pages.&#8221; Most of them kind of were &#8220;right enough&#8221; at one point in time for a subset of people. Most of them don&#8217;t bother to tell you what the host system is. I suspect many of them used a 32-bit host system which masked most of the problems with their instructions. The instructions found here definitely fall into this category. How &hellip; <a title=\"How Far We&#8217;ve Come &#8211; Pt. 18\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/\"><span class=\"screen-reader-text\">How Far We&#8217;ve Come &#8211; Pt. 18<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1113],"tags":[1516,1524,1381,159,1034],"class_list":["post-2543","post","type-post","status-publish","format-standard","hentry","category-information-technology","category-raspberry-pi","tag-cross-compile","tag-libpq-fe-h","tag-postgresql","tag-qt","tag-raspberry-pi","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Far We&#039;ve Come - Pt. 18 &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Far We&#039;ve Come - Pt. 18 &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-05T21:59:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-13T20:56:49+00:00\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"How Far We&#8217;ve Come &#8211; Pt. 18\",\"datePublished\":\"2017-10-05T21:59:58+00:00\",\"dateModified\":\"2021-02-13T20:56:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/\"},\"wordCount\":742,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"keywords\":[\"cross compile\",\"libpq-fe.h\",\"PostgreSQL\",\"Qt\",\"Raspberry Pi\"],\"articleSection\":[\"Information Technology\",\"Raspberry Pi\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/\",\"name\":\"How Far We've Come - Pt. 18 &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"datePublished\":\"2017-10-05T21:59:58+00:00\",\"dateModified\":\"2021-02-13T20:56:49+00:00\",\"description\":\"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-18\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Far We&#8217;ve Come &#8211; Pt. 18\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Far We've Come - Pt. 18 &#8211; Logikal Blog","description":"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/","og_locale":"en_US","og_type":"article","og_title":"How Far We've Come - Pt. 18 &#8211; Logikal Blog","og_description":"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/","og_site_name":"Logikal Blog","article_published_time":"2017-10-05T21:59:58+00:00","article_modified_time":"2021-02-13T20:56:49+00:00","author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"How Far We&#8217;ve Come &#8211; Pt. 18","datePublished":"2017-10-05T21:59:58+00:00","dateModified":"2021-02-13T20:56:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/"},"wordCount":742,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"keywords":["cross compile","libpq-fe.h","PostgreSQL","Qt","Raspberry Pi"],"articleSection":["Information Technology","Raspberry Pi"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/","name":"How Far We've Come - Pt. 18 &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"datePublished":"2017-10-05T21:59:58+00:00","dateModified":"2021-02-13T20:56:49+00:00","description":"Cross compiling for the RaspberryPi has about as many Web pages with bad instructions as there have been RaspberryPi units sold.","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-18\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"How Far We&#8217;ve Come &#8211; Pt. 18"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2543"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2543\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}