lundi 15 juillet 2013

Activer std::this_thread::sleep_for avec GCC

Je suis en train de m'amuser en ce moment avec C++11 (C++0x pour les intimes).
Il se trouve que la version 4.8.1 de GCC offre un support complet contrairement à VC2012 (VC11).

Tout se passait à merveille jusqu’à ce que j'essai d'utiliser std::this_thread::sleep_for et consort, le compilateur m'envoyant systématiquement une insulte me disant que la méthode n'existe pas...

Une petite recherche sur l'internet m'a permis de trouver la cause du problème, en fait cela vient d'un bug du script de configuration. Pour activer std::this_thread::sleep_for il suffit de passer :

--enable-libstdcxx-time=rt (sous Linux)

ou

--enable-libstdcxx-time (pas testé)

comme paramètre à configure.

Voici un petit exemple :

./configure --prefix=/opt/gcc CFLAGS='-O3'  --enable-libstdcxx-time=rt --enable-languages=c,c++

Ensuite, tout rentre dans l’ordre !

dimanche 31 mars 2013

Drivers Nvidia pour Opensuse 12.3

L'autre jour j'ai installé comme à mon habitude le driver Nvidia pour Linux sur une machine équipée d'une carte quadro.
L'installation se passe bien, l'installeur trouve bien les sources du kernel, exécute ses scripts pré et post install et je reboot. Je me dis tout va bien dans le meilleur des mondes et là c'est le drame. Le driver est bien installé mais pas d’accélération 3D...

En fait, c'est tout simplement un problème de droits sur les devices nvidia. Pour régler le problème il suffit de créer le fichier suivant


/etc/udev/rules.d/50-udev.rules avec ce qui suit :

----------------------

##################/etc/udev/rules.d/50-udev.rules############

KERNEL=="nvidia*", NAME="%k", GROUP="users" 

##################end of /etc/udev/rules.d/50-udev.rules#####


Rebooter et tout rentre dans l'ordre !