2013-04-11 2 views
2

Я пытаюсь скомпилировать некоторый проект js с помощью emscripten. В проекте используется cmake как инструмент построения.cmake не может найти boost thread

Это, как я звоню CMake:

cmake -DEMSCRIPTEN=1 
-DCMAKE_TOOLCHAIN_FILE=~/Documents/emscripten/cmake/Platform/Emscripten_unix.cmake 
-DCMAKE_MODULE_PATH=~/Documents/emscripten/cmake 
-DCMAKE_BUILD_TYPE=Release 
-G "Unix Makefiles" 
-DRDK_BUILD_PYTHON_WRAPPERS= 
-DBOOST_INCLUDEDIR=~/Documents/boost_1_53_0/boost 
-DBOOST_LIBRARYDIR=~/Documents/boost_1_53_0/stage/lib 
-DBoost_REGEX_LIBRARY=~/Documents/boost_1_53_0/stage/lib/libboost_regex.a 
-DBOOST_ROOT=~/Documents/boost_1_53_0 
-DBoost_NO_SYSTEM_PATHS=TRUE 
-DBoost_USE_MULTITHREADED=FALSE 
-DBoost_USE_STATIC_LIBS=OFF 
-DBoost_USE_STATIC_RUNTIME=OFF 
-DBoost_ADDITIONAL_VERSIONS="1.53.0" 
-DBoost_DETAILED_FAILURE_MSG=TRUE 
-DBoost_NO_BOOST_CMAKE=ON 
-DBoost_DEBUG=TRUE 
.. 

Это то, что я имею в/главная/mnowotka/Документы/boost_1_53_0/этап/Библиотека каталога:

ls -lh ~/Documents/boost_1_53_0/stage/lib 
total 4.4M 
-rw-rw-r-- 1 mnowotka mnowotka 2.6M Apr 11 10:49 libboost_regex.a 
lrwxrwxrwx 1 mnowotka mnowotka 24 Apr 11 10:10 libboost_regex.so -> libboost_regex.so.1.53.0 
-rw-rw-r-- 1 mnowotka mnowotka 1.9M Apr 11 10:10 libboost_regex.so.1.53.0 

И это что я получаю от CMake:

-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:667 ] Include debugging info: 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:669 ] _boost_INCLUDE_SEARCH_DIRS = /home/mnowotka/Documents/boost_1_53_0/boost;/home/mnowotka/Documents/boost_1_53_0/include;/home/mnowotka/Documents/boost_1_53_0 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:671 ] _boost_PATH_SUFFIXES = boost-1_53_0;boost_1_53_0;boost-1_48_0;boost_1_48_0;boost-1_48;boost_1_48;boost-1_47_0;boost_1_47_0;boost-1_47;boost_1_47;boost-1_46_1;boost_1_46_1;boost-1_46_0;boost_1_46_0;boost-1_46;boost_1_46;boost-1_45_0;boost_1_45_0;boost-1_45;boost_1_45;boost-1_44_0;boost_1_44_0;boost-1_44;boost_1_44;boost-1_43_0;boost_1_43_0;boost-1_43;boost_1_43;boost-1_42_0;boost_1_42_0;boost-1_42;boost_1_42;boost-1_41_0;boost_1_41_0;boost-1_41;boost_1_41;boost-1_40_0;boost_1_40_0;boost-1_40;boost_1_40;boost-1_39_0;boost_1_39_0;boost-1_39;boost_1_39 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:696 ] location of version.hpp: /home/mnowotka/Documents/boost_1_53_0/boost/version.hpp 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:715 ] version.hpp reveals boost 1.53.0 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:808 ] guessed _boost_COMPILER = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:818 ] _boost_MULTITHREADED = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:861 ] _boost_RELEASE_ABI_TAG = - 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:863 ] _boost_DEBUG_ABI_TAG = -d 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:906 ] _boost_LIBRARY_SEARCH_DIRS = /home/mnowotka/Documents/boost_1_53_0/stage/lib;/home/mnowotka/Documents/boost_1_53_0/lib;/home/mnowotka/Documents/boost_1_53_0/stage/lib;/home/mnowotka/Documents/boost_1_53_0/lib;/home/mnowotka/Documents/boost_1_53_0/../lib;/home/mnowotka/Documents/boost_1_53_0/stage/lib 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:1119 ] Boost_FOUND = TRUE 
-- Boost version: 1.53.0 
-- Looking for include files CMAKE_HAVE_PTHREAD_H 
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found 
-- Looking for pthread_create in pthreads 
-- Looking for pthread_create in pthreads - not found 
-- Looking for pthread_create in pthread 
-- Looking for pthread_create in pthread - found 
-- Found Threads: TRUE 
-- Found BISON: /usr/bin/bison 
-- Found FLEX: /usr/bin/flex 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:525 ] Boost not in cache 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:528 ] _boost_TEST_VERSIONS = 1.53.0;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:530 ] Boost_USE_MULTITHREADED = FALSE 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:532 ] Boost_USE_STATIC_LIBS = OFF 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:534 ] Boost_USE_STATIC_RUNTIME = OFF 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:536 ] Boost_ADDITIONAL_VERSIONS = 1.53.0 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:538 ] Boost_NO_SYSTEM_PATHS = TRUE 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:606 ] Declared as CMake or Environmental Variables: 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:608 ] BOOST_ROOT = /home/mnowotka/Documents/boost_1_53_0 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:610 ] BOOST_INCLUDEDIR = /home/mnowotka/Documents/boost_1_53_0/boost 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:612 ] BOOST_LIBRARYDIR = /home/mnowotka/Documents/boost_1_53_0/stage/lib 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:614 ] _boost_TEST_VERSIONS = 1.53.0;1.48.0;1.48;1.47.0;1.47;1.46.1;1.46.0;1.46;1.45.0;1.45;1.44.0;1.44;1.43.0;1.43;1.42.0;1.42;1.41.0;1.41;1.40.0;1.40;1.39.0;1.39 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:696 ] location of version.hpp: /home/mnowotka/Documents/boost_1_53_0/boost/version.hpp 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:715 ] version.hpp reveals boost 1.53.0 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:808 ] guessed _boost_COMPILER = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:818 ] _boost_MULTITHREADED = 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:861 ] _boost_RELEASE_ABI_TAG = - 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:863 ] _boost_DEBUG_ABI_TAG = -d 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:906 ] _boost_LIBRARY_SEARCH_DIRS = /home/mnowotka/Documents/boost_1_53_0/stage/lib;/home/mnowotka/Documents/boost_1_53_0/lib;/home/mnowotka/Documents/boost_1_53_0/stage/lib;/home/mnowotka/Documents/boost_1_53_0/lib;/home/mnowotka/Documents/boost_1_53_0/../lib;/home/mnowotka/Documents/boost_1_53_0/stage/lib 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:977 ] Searching for REGEX_LIBRARY_RELEASE: boost_regex-1_53;boost_regex;boost_regex-1_53;boost_regex;boost_regex 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:1009 ] Searching for REGEX_LIBRARY_DEBUG: boost_regex-d-1_53;boost_regex-d;boost_regex-d-1_53;boost_regex-d;boost_regex;boost_regex 
-- [ /usr/share/cmake-2.8/Modules/FindBoost.cmake:1119 ] Boost_FOUND = FALSE 
CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1202 (message): 
Unable to find the requested Boost libraries. 

Boost version: 1.53.0 

Boost include path: /home/mnowotka/Documents/boost_1_53_0 

The following Boost libraries could not be found: 

     boost_regex 

No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the 
directory containing Boost libraries or BOOST_ROOT to the location of 
Boost. 
Call Stack (most recent call first): 
Code/GraphMol/SLNParse/CMakeLists.txt:4 (find_package) 


CMake Error: The following variables are used in this project, but they are set to NOTFOUND. 
Please set them or make sure they are set and tested correctly in the CMake files: 
Boost_REGEX_LIBRARY (ADVANCED) 
linked by target "testSLNParse" in directory /home/mnowotka/Documents/rdkit-code/Code/GraphMol/SLNParse 

-- Configuring incomplete, errors occurred! 

у меня есть только один вопрос: почему?

Что я делаю неправильно? Это сводит меня с ума ....

(BTW: это не имеет значения, если я изложу Boost_USE_STATIC_LIBS и Boost_USE_STATIC_RUNTIMEON или OFF - это не работает, либо ...)

ответ

2
  1. Вы знаете , что Emscripten в настоящее время может использовать только модули (например, Boost, Boost-Regex), какой исходный код он компилирует? Другими словами, Emscripten не может использовать динамические библиотеки или предварительно скомпилированные статические!

    • Таким образом, вы должны добавить исходный код для наддува Regex в файл CMake и строить их вместе (я не сделал CMake довольно долгое время, так что я не могу вам сказать, как).

    • Или вы можете снять флажок для наддува Regex от CMake и жёстко необходимые ссылки

    Все, что вы хотите делать, вы должны построить наддува Regex с Emscripten, тоже!

  2. Что касается Emscripten, вы действительно должны использовать Boost_USE_STATIC_LIBS=ON, поскольку динамические библиотеки в настоящее время не поддерживается Emscripten (см. Выше)

  3. Emscripten также не поддерживает вызовы pthread* или любую одновременную обработку. Вы должны искать эти вещи в своем коде.

К сожалению звука настолько негативным, но в настоящее время используют библиотеки с Emscripten нет куска пирога.

+1

Кроме того, мы работаем над улучшением ситуации :) – abergmeier

+0

Вы участвуете в разработке Emscripten? Если да, у меня есть еще пара вопросов! – mnowotka

+0

В частности, я рекомендую вам этот вопрос: http://stackoverflow.com/questions/15980585/how-to-change-emscripten-browser-input-method-from-window-prompt-to-something-mo – mnowotka

 Смежные вопросы

  • Нет связанных вопросов^_^