Entries tagged c

MySQL Verbindungen in C++ mit mysqlpp

Posted on 6. November 2013 Comments

MySQL Server und Header installieren:

sudo apt-get install mysql-server  libmysqlclient-dev libmysql++-dev

In Eclipse C++-Projekt anlegen, Rechtsklick auf das Projekt:

Properties>C/C++-Build>Settings>Tool Settings>GCC C++ Compiler>Includes
Dort die Pfade /usr/include/mysql und /usr/include/mysql++ als Include paths eintragen.



Weiter unten unter GCC C++ Linker>Libraries>Libraries „mysqlpp“ eintragen und unter Library search paths ebenfalls /usr/include/mysql und /usr/include/mysql++.



Unter Miscellaneous dann noch bei Other objects die Datei /usr/lib/x86_64-linux-gnu/libmysqlclient.so angeben:



Beispieldatei: mysqlpptest.cpp


Credits: C++ with a shot of MySQL on Ubuntu 10.10

ActiveMQ mit C++ und Eclipse

Posted on 6. November 2013 Comments



sudo apt-get update && apt-get upgrade && apt-get install build-essential autoconf libaprutil1-dev libapr1-dev

cd ~/Development

wget http://mirror.softaculous.com/apache/activemq/activemq-cpp/source/activemq-cpp-library-3.4.5-src.tar.gz

tar -xvzf activemq-cpp-library-3.4.5-src.tar.gz

cd activemq-cpp-library-3.4.5-src




Dann mit sudo make install auf dem lokalen Rechner installieren. Damit befinden sich dann die .so-Dateien in /usr/local/lib.

In Eclipse

  1. Neu -> C++ Project
  2. Rechtsklick Projekt -> Properties
  3. C/C++ -> Build -> Settings -> GCC C++ Compiler -> Includes
  4. Unter include paths Pfad von ActiveMQ-CPP: /home/user/workspace/activemq-cpp-3.4.5/activemq-cpp/src/main hinzufügen oder anpassen
  5. Dort auch Pfad von APR hinzufügen: /usr/include/apr-1.0
  6. Die beiden auch beim Linker als library search path hinzufügen oder anpassen
  7. Als shared Object beim Linker /usr/local/lib/libactivemq-cpp.so hinzufügen


Die Projekte unter activemq-cpp-3.4.5/activemy-cpp/src/examples lassen sich jetzt kompilieren, allerdings kommt beim starten folgende Fehlermeldung:

./activeMQProducer: error while loading shared libraries: libactivemq-cpp.so.14: 
cannot open shared object file: No such file or directory

Der Fehler lässt sich mit folgendem Befehl beheben(credit):

export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

Diesen Artikel hatte ich bereits vor einem Jahr(Ende 2012) geschrieben. Vielleicht gibt es neue Versionen der benutzen Software.

Dining Philosophers with monitor using pthread mutex and condition variables in C

Posted on 24. Mai 2012 Comments

I had to do this for uni a while ago so I thought I might as well publish it. The task was to implement the Dining philosophers problem in C. We had to use the monitor concept which is implemented with mutual exclusion (mutex) from the pthread-library because C lacks a built-in monitor function in contrary to e.g. Java, Python or Delphi. Bascially this just means, the critical things have to go between pthread_mutex_lock(&mutex) and pthread_mutex_unlock(&mutex) The communication from one philosopher to another was realized with condition variables(cond-vars). The realisation of thinking and eating should be done by to empty loops that go to a huge number(so it takes a while even on todays computers). A debug printout should be implemented as well to control everything is working as expected. Nearer details can be found in the doxygen documentation or directly in the sourcecode.