PDA

View Full Version : مشکل در شناساندن boost به cmake



ASedJavad
چهارشنبه 28 آبان 1393, 15:21 عصر
سلام
قبل از هر چیز بگم که من برنامه نویس سی نیستم و درنتیجه خواهش میکنم خیلی پیچیده جواب ندید.
مشکل اینه که من یه سورس دانلود کردم که تو هلپش گفته باید با cmake ساخته بشه!
بعد نوشته بود نیاز به boost library داره
خب من cmake رو دانلود و نصب کردم. boost رو هم دانلود کردم
وقتی تو cmake، کانفیگور رو میزنم، این 4 تا خطا رو میده:

Boost_DIR-NOTFOUND
Boost_INCLUDE_DIR-NOTFOUND
Boost_UNIT_TEST_FRAMEWORK_LIBRARY_DEBUF-NOTFOUND
Boost_UNIT_TEST_FRAMEWORK_LIBRARY_RELEASE-NOTFOUND

الان من نمیدونم دقیقا باید چکار کنم.
باید مسیر کدوم فولدرا رو به این 4 مورد بدم؟
وقتی boost رو اکسترکت میکنم، یک همچین پوشه هایی داره:

125861
این رو هم بگم (شاید گفتنش لازم باشه) من ویندوز 8.1 x64 کار میکنم و برا استفاده رو ویژوال استودیو 2013 میخوامش

درضمن یه سؤال دیگه:
مگه ویژوال استودیو فقط نسخه 32 بیتی نداره؟ پس چطور تو cmake هم نسخه ARM داره و هم WIN64؟
ممنون

حامد مصافی
چهارشنبه 28 آبان 1393, 17:32 عصر
در فایل CMakeFile.txt جایی نوشته شده FIND_PACKAGE(Boost) اونو پیدا کن و قبلش این دستورات رو اضافه کن:

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "g:/Falcon/software/OpenTissue/boost_1_56_0")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "g:/Falcon/software/OpenTissue/boost_1_56_0/libs")

----
cmake ربطی به VS‌نداره. در واقع cmake‌نسخه لینوکس، مک‌او‌اس و یونیکس هم داره!

ASedJavad
چهارشنبه 28 آبان 1393, 20:30 عصر
در فایل CMakeFile.txt جایی نوشته شده FIND_PACKAGE(Boost) اونو پیدا کن و قبلش این دستورات رو اضافه کن:

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "g:/Falcon/software/OpenTissue/boost_1_56_0")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "g:/Falcon/software/OpenTissue/boost_1_56_0/libs")

----
cmake ربطی به VS‌نداره. در واقع cmake‌نسخه لینوکس، مک‌او‌اس و یونیکس هم داره!

ممنون از شما. ولی...
فایل cmakeFile.txt وجود نداشت. بجاش یه فایل بود به اسم FindOpenTissue.cmake که توش این خطوط رو داشت:

# Try to find Boost (http://www.boost.org/), Boost is needed by almost all
# OpenTissue code, one have to make sure this one works!
#

SET(Boost_USE_STATIC_LIBS ON)
#SET(Boost_USE_MULTITHREAD OFF)

FIND_PACKAGE( Boost 1.39.0 COMPONENTS unit_test_framework )
IF(Boost_FOUND)
SET(OPENTISSUE_INCLUDE_DIRS ${OPENTISSUE_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
ENDIF(Boost_FOUND)
و من اون دو خطی رو که فرمودید ابتداش اضافه کردم. اما بازهم همون ارور boost not found رو میده و از اون 4 تا خطی که گفتم فقط Boost_INCLUDE_DIR رو شناخته.

ممکنه بخاطر تفاوت ورژن boost باشه؟

omid_kma
پنج شنبه 29 آبان 1393, 12:03 عصر
برای build کردن boost اصلا نیازی به cmake نیست
cmd رو باز کنید cd کنید به پوشه boost بعد این 2 خط رو بزنید

bootstrap
.\b2

بعد هم مسیر lib و include ها رو داخل ویژوال استودیو بدید و استفاده کنید .

ASedJavad
پنج شنبه 29 آبان 1393, 13:19 عصر
برای build کردن boost اصلا نیازی به cmake نیست
cmd رو باز کنید cd کنید به پوشه boost بعد این 2 خط رو بزنید

bootstrap
.\b2

بعد هم مسیر lib و include ها رو داخل ویژوال استودیو بدید و استفاده کنید .

سلام
ممنون از شما
با ترکیب پاسخ شما و پاسخ آقا حامد، درست شد.