Bonjour à tous,
J'ai créé un petit Cmakelist pour compiler mon projet qui utilise boost 1.55.0 et seulement la DLL boost_system.
J'ai compiler boost via mon projet GDeps (http://gdeps.org on peut retrouver les binaires de boost 1.55.0 compiler à l'adresse suivante : http://gdeps.org/reports/report.php?folder=boost_1-55 )
J'ai donc dans le fichier stage/lib quasiment toutes les dll en multithread en release et debug pour vc90, vc100, vc110, vc120, vc140, mingw51, mingw48. Peut être que le problème viens de là car je ne vois pas le distinguo entre 32bits et 64bits alors que normalement j'ai compiler boost pour les deuxce qui se voit dans les sous dossiers de "bin.v2/libs/system/build/[compilateur]". Il y a les sous-dossier "address-model-32" et "address-model-64" avec à l'intérieur les DLL. En tout cas si je compile juste un projet il me dit que la DLL n'est pas valide et c'est la version vc140. Mais voilà l'erreur qui surgit en compilant toute la solution est tout autre.
Pour Mingw Codeblocks je n'ai pas de soucis.
Pour visual 2015 j'ai cette erreur. Il ne trouve pas LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib'
Tout d'abord cela devrait être vc140 et non vc120. J'ai fait une recherche dans le projet visual2015, seulement boost_system-vc140-mt-gd-1_55.lib apparait. La version vc120 n'apparait que dans les logs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Line 16: 1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Line 105: Linking to lib file: libboost_system-vc120-mt-1_55.lib Line 120: Linking to lib file: libboost_date_time-vc120-mt-1_55.lib Line 121: Linking to lib file: libboost_regex-vc120-mt-1_55.lib Line 122: Linking to lib file: libboost_thread-vc120-mt-1_55.lib Line 123: Linking to lib file: libboost_chrono-vc120-mt-1_55.lib Line 163: Linking to lib file: libboost_system-vc120-mt-1_55.lib Line 178: Linking to lib file: libboost_date_time-vc120-mt-1_55.lib Line 179: Linking to lib file: libboost_regex-vc120-mt-1_55.lib Line 180: Linking to lib file: libboost_thread-vc120-mt-1_55.lib Line 181: Linking to lib file: libboost_chrono-vc120-mt-1_55.lib Line 268: 1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-1_55.lib'
Voici le code CMake qui inclue boost via le module FindBoost.cmake
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 # Dependencies #*Boost : https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) find_package(Boost 1.55.0 REQUIRED COMPONENTS system) # thread exception filesystem if(Boost_FOUND) include_directories(${Boost_INCLUDE_DIRS}) link_directories(${Boost_LIBRARY_DIRS}) target_link_libraries(gr ${Boost_LIBRARIES}) #target_link_libraries(gr ${Boost_SYSTEM_LIBRARY}) add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) IF( WIN32 ) target_link_libraries(gr ws2_32 mswsock) # ws_32 wsock32 ENDIF( WIN32 ) else() message(fatal_error "Boost was not found. See FindBoost.cmake for details.") endif()
Si vous aviez une idée ça serait génial.
Merci
Partager