Compiler un programme avec les bibliothèques statiques
	
	
		Salut les OpenCV,
j'ai essayer de compiler OpenCV d'après les sources afin d'avoir les libraries static et de compiler mon programme avec.
Car je ne veut pas polluer le dossier LIBPATH  ni INCLUDEPATH ("je sais que ça n'existe pas comme variable d'environnement") sous Linux avec mon les libraries et headers issue des source de OpenCV sous Linux pour la distribution de mon programme. 
J'ai donc essayer de compiler mon programme avec les libraries static, 
mais cela ne marche pas de donner les libraries static sur la ligne de commande comme ceci:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 
 | #Makefile
 
CXX = g++
CXXFLAGS = -std=c++11 
 
# Better sort the file order in relationship to `pkg-config --libs opencv` linking chain order.
OPENCV_A = libopencv_calib3d.a \  
    libopencv_contrib.a                    \
    libopencv_core.a                        \
    libopencv_features2d.a              \
    libopencv_flann.a                       \
    libopencv_gpu.a                         \
    libopencv_highgui.a                   \
    libopencv_imgproc.a                  \
    libopencv_legacy.a                    \
    libopencv_ml.a                          \
    libopencv_objdetect.a               \
    libopencv_ocl.a                         \
    libopencv_photo.a                    \
    libopencv_stitching.a                \
    libopencv_superres.a               \
    libopencv_ts.a                          \
    libopencv_video.a                    \
    libopencv_videostab.a             
 
default:
[TAB] $(CXX) $(CXXFLAGS) main.cpp $(OPENCV_A) | 
 obtenus grâce a:
	Code:
	
| 12
 
 | $ cmake WITH_GTK=ON WITH_GTK3=ON CMAKE_BUILD_TYPE=RELEASE BUILD_SHARED_LIBS=OFF
$ make | 
 J'ai un traceback de problème de `dlsym linking` (problème de ld) se rapportant aux dépendances (libjpeg, libpng).
J'ai néanmoins s réussis a compiler mon programme de manière a vraiment polluer un minimum: un fichier. Comme ceci:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 
 |  
$ cmake WITH_GTK=ON WITH_GTK3=ON CMAKE_BUILD_TYPE=RELEASE BUILD_SHARED_LIBS=OFF
$ make opencv_python2    
$ cd ./lib
$ sudo cp cv2.so /usr/local/lib
$ sudo ldconfig
$ sudo ln -s  /usr/local/lib/cv2.so /usr/local/lib/libcv2.so # C'est la library du module python.
$ g++ -std=c++11 main.cpp -lcv2 | 
 Donc au résultat j'obtiens un exécutable linker dynamiquement  et non compiler avec les libraries static mais qui fonctionne...
Je sais que OpenCV est complexe et demande beaucoup de dépendances du coup le processus de compilation manuel est long et compliquer.
Et je pense qu'il n'y pas d'erreur sur ma ligne de commande dans le Makefile en théorie.
Mais il y a un vice: c.a.d que j'utilise la library python 2 pour compiler l'exécutable écrit en C++ avec g++. 
Je trouve pas ça très orthodoxe et vous demande donc conseil...
Merci pour vos réponses éclairées.