PDA

View Full Version : مبتدی: اجرای کد



2java2
چهارشنبه 06 آذر 1392, 12:45 عصر
سلام دوستان من خیلی مبتدی هستم یه سوال داشتم می خواستم بدونم که چطوری می تونم این پروژه رو اجرا کنم
software.intel.com/sites/default/files/MjgIntelFluidDemo.rar
تا به حال هیچ پروژه ی c++ رو اجرا نگرفتم اصلا نمی دونم چطوری باید از کل پروژه اجرا بگیرم وقتی تو ویژوال استودیو دیباگ می کنم ارور می ده پروژه های c# و ویژال بیسیک و یا حتی جاوا رو خیلی راحت می شه کامپایل کرد ولی سی و سی پلاس پلاس رو نمی دونم چطوریه!!!
ممنون می شم اگر توضیح بدید

aminsaeedi
چهارشنبه 06 آذر 1392, 13:13 عصر
سلام
حالا این پروژه چی هست که شمایی که تازه کاری می خواهید اجراش کنید

2java2
چهارشنبه 06 آذر 1392, 13:28 عصر
این پروژه شبیه سازی گاز هست من تا به حال نتونستم برنامه ای از سی و سی پلاس پلاس رو کامپایل کنم خودم واسه مایا برنامه نوشتم با python و جاوا و C# اما با سی و سی پلاس پلاس هنوز موفق به کامپایل پروژه ها نشدم اگر کمک کنید ممنون می شم

aminsaeedi
چهارشنبه 06 آذر 1392, 13:40 عصر
من که حرفه ای نیستم اصلا متوجه نشدم چی به چی هست
البته شاید وقت بذارم به نتیجه برسم ولی باز هم بعیده

2java2
چهارشنبه 06 آذر 1392, 15:07 عصر
ممنون از وقتی که گذاشتی اما نیاز به حرفه ای بودن نداره فقط باید بدونی چطوری باید کد رو کامپایل کنی با ویژوال استودیو.!

rahnema1
چهارشنبه 06 آذر 1392, 19:28 عصر
سلام
برای کامپایل این پروژه نیاز هست دو لایبری Threading Building Blocks library یا tbb و glut که مربوط به opengl هست رو داشته باشید و مسیر هدر های اون دو لایبری رو به کامپایلر معرفی کنید در ضمن یه فایل دیگه هم تو اون سایت بود
http://www.mijagourlay.com/documents/MjgIntelFluidDemo.zip?attredirects=0&d=1

2java2
پنج شنبه 07 آذر 1392, 10:41 صبح
سلام ممنون از اینکه اهمیت دادید
من این کتابخونه رو دانلود کردم از اینجا
https://www.threadingbuildingblocks.org/download
اما نمی دنم چطوری باید ازش استفاده کنم در ضمن یه چیزی رو باید بگم شاید مهم باشه تو پروژه ای که بهتون گفتم یا پروژه ای که خودتون لینکش رو گذاشتید سه تا فایل هست به اسم های tbb.dll , tbbmalloc.dll , useTbb.h که همراه با فایل کامپایل شده ی این پروژه هم هست که اجرا می شه و پروژه بالا میاد میخواستم اگر لطف کنید و یه توضیحی در مورد این دو سه مورد بهم بدید.
شما پروژه رو کامپایل کردید؟
من نمی دونم چطور باید از کتابخونه استفاده کنم!

rahnema1
پنج شنبه 07 آذر 1392, 12:31 عصر
من کامپایل نکردم ولی این کار را انجام دهید
اگه فایل زیپ رو دانلود کردید اون را یک جا اکسترکت کنید
یک متغیر محیطی یا environment variable در ویندوز درست کنید به نام TBB22_INSTALL_DIR
و مقدار آن را برابر فولدری قرار بدهید که لایبری را اکسترکت کرده اید احتمالا درست بشه

2java2
پنج شنبه 07 آذر 1392, 16:26 عصر
rahnema1 (http://barnamenevis.org/member.php?305905-rahnema1) من متغیر محیطی رو ساختم اما نمی دونم دقیقا باید رو کدوم پوشه ست کنم چون پوشه ای رو که اکسترکت می کنم چندین تا پوشه ی دیگه داکیومنت و اینکلود و .. و .. داره خلاصه نتونستم پروژه رو بالا بیارم اما داخل فایل useTbb.h چنین کامنتی وجود داره
/*! \brief Use Threading Building Blocks

If you want to use TBB, you must install the libraries.
Obtain them from http://www.threadingbuildingblocks.org/.

Place them in the appropriate directory.

For MS Windows, you also need to set up the environment.
TBB comes with a batch file to do that but you must run
its contents from autoexec.bat, or else manually enter
all of the same information via Start --> Control Panel
--> System --> Advanced (tab) --> Environment Variables.

In addition to those variables provided in the batch file,
you will also likely need to set your PATH to include
the "bin" directory associated with the library you choose,
making sure that bit precedes other directories,
otherwise you might get an error stating "cannot find entry
point in dynamic link library tbb.dll", which implies your system
has multiple copies of tbb.dll and the one you need comes
after some different (probably older) version. Alternatively you
could put the tbb.dll in the same directory as the executable.

*/

لطفا بیشتر راهنمایی کنید خیلی واسم مهمه مرسی

rahnema1
پنج شنبه 07 آذر 1392, 19:01 عصر
منظورم فایل زیپ لایبری tbb رو که دانلود کردید فولدر اصلی که include و بقیه رو در بر می گیره آدرس اون را بعنوان متغیر محیطی مورد نظر بگذارید تا بشه کامپایل کرد

2java2
پنج شنبه 07 آذر 1392, 19:16 عصر
با سلام مجدد
این کار رو کردم من از طریق پنجره ی system properties و تب advanced و سپس enviroment variables با اسمی که شما گفتید متغیر رو ایجاد کردم و همچنین مقدار value رو برابر با آدرس اون پوشه ی tbb قرار دادم اما باز هم پروژه کامپایل نشد
یک فایل تکست در پروژه موجود هست که چنین توضیحاتی در داخلش هست نمی دونم دقیق باید چی کار کنم اول صحبت از فایل bat می کنه که تو پوشه ی bin این کتابخونه هست اما من نمی دونم باید چی کار کنم این هم متن فایل تکست

This code accompanies a series of articles, which appear here:
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-1/
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-2/
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-3/
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-4/
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-5/
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-6/

http://www.gamasutra.com/view/feature/4164/sponsored_feature_fluid_.php
http://www.gamasutra.com/view/feature/4176/sponsored_feature_fluid_.php

http://www.mijagourlay.com/

\author Copyright 2009-2010 Dr. Michael Jason Gourlay; All rights reserved.

This demonstration project uses Intel's Threading Building Blocks, which you
can obtain here: http://www.threadingbuildingblocks.org/

After you obtain the libraries, you have to unpack then manually and place them
where you want them to reside. There is no installer for the free version. For
example, I placed the unpacked folder, which was named "tbb21_017oss_win",
in C:\Program Files\Intel\ThreadingBuildingBlocks.

You will also have to set up your environment, manually. You have at least two
options: Modify "autoexec.bat" or enter each environment variable by hand.

The TBB distribution comes with batch files named "tbbvars.bat" to assign environment
variables. Those TBB batch files reside in the "bin" directory of each of the
subdirectories for the various version of Visual Studio. But running that batch file
by itself (e.g. via a Startup command) will not affect your "global" environment.
You will probably have to execute those commands that from your system's "autoexec.bat"
in order for the change to take affect uniformly. Usually, "autoexec.bat" resides
in "C:\" and, since it is a system file, is usually hidden. To find it in Explorer,
you will have to change View settings to disable hiding hidden files, and to disable
hiding system files. Then "autoexec.bat" will appear in the listing for "c:\" or
wherever it resides. Then you can edit that file to contain the commands to set
the TBB environment variables.

Also, you might find that you need to set your executable path such that the
TBB "bin" directory precedes other subdirectories.

For example, the following set of commands could go into your autoexec.bat,
assuming you placed your TBB distribution in the location indicated below:

SET TBB21_INSTALL_DIR=C:\Program Files\Intel\ThreadingBuildingBlocks\tbb21_017oss_w in
SET TBB_ARCH_PLATFORM=ia32\vc7.1
SET PATH=%TBB21_INSTALL_DIR%\%TBB_ARCH_PLATFORM%\bin;% PATH%
SET LIB=%TBB21_INSTALL_DIR%\%TBB_ARCH_PLATFORM%\lib;%L IB%
SET INCLUDE=%TBB21_INSTALL_DIR%\include;%INCLUDE%
IF "%TBB_ARCH_PLATFORM%"=="em64t\vc7.1" SET TBB_SECURITY_SWITCH=/GS-
IF "%TBB_ARCH_PLATFORM%"=="intel64\vc7.1" SET TBB_SECURITY_SWITCH=/GS-

After you modify "autoexec.bat" you will have to reboot your machine for the
changes to take effect.

If you do not want to modify "autoexec.bat" or if you do not have permission
to do so, then you would have to set environment variables manually using
Control Panel --> System --> Advanced --> Environment Variables. After you
enter each of the variables listed in the "tbbvars.bat" file, you will be
able to build and run all of the configurations included in this project.

This project also includes a configuration that does not use TBB, so that you
can compare timings. Try ProfileWithoutTbb. Incidentally, that project
should build and run even if you do not have TBB installed; it will just
run slower than the corresponding version with TBB.

-=-

After you get it all running, once the window appears, you can press
various keys to make changes. The function keys change the initial
conditions. In particular, "F1", "F2" and "F3" will have general interest.

You can also mouse-click-drag in the window to change the view.
Left mouse button controls rotation, middle mouse button controls
translation and right mouse button controls distance from the view target.
Also, the "," and "." keys zoom in and out.

In profile builds, the "?" key toggles spewing profile data in the console window.

Pressing "Esc" will exit the program.

2java2
پنج شنبه 07 آذر 1392, 19:41 عصر
من الان دوباره که آدرس متغیر محیطی رو تغییر دادم ارور هایی که موقع کامپایل می داد تغییر کرد قبلا برای فایل useTbb.h ارور می داد که فایل هایی که در درون این فایل اینکلود شده بود رو نمی شناخت الان ولی روی فایل tbb_debug.lib ارور می ده اروری هم که می ده اینه
description :
error LINK1104 cannot open file 'tbb_debug.lib'
File:
LINK
نمی دونم مشکل از کجاست

rahnema1
پنج شنبه 07 آذر 1392, 19:54 عصر
این فایل bat رو که گذا شتم به جای فایل tbbvars.bat که در فولدر bin قرار داره بگذارید
cmd رو run as admin کنید و در cmd به فولدر bin بروید
و اگه سیستم شما 32 بیتی هست این دستور را بزنید

tbbvars ia32

اگه سیستم شما 64 بیتی هست این را بزنید:

tbbvars intel64

حالا کامپایل کنید اروری را هم که میده اینجا بذارید

rahnema1
پنج شنبه 07 آذر 1392, 19:56 عصر
از چه ورژن ویژوال استادیو استفاده می کنید؟

2java2
پنج شنبه 07 آذر 1392, 20:00 عصر
این کار رو کردم دقیقا اما باز هم ارور قبلی یعنی
description :
error LINK1104 cannot open file 'tbb_debug.lib'
File:
LINK

رو می ده هنگام کامپایل !!!

2java2
پنج شنبه 07 آذر 1392, 20:01 عصر
از ورژن 2010 استفاده می کنم

rahnema1
پنج شنبه 07 آذر 1392, 20:05 عصر
32 بیتی : tbbvars ia32 vs2010
64 بیتی : tbbvars intel64 vs2010

2java2
پنج شنبه 07 آذر 1392, 20:13 عصر
وقتی فرمان رو توی cmd می زنم این پیغام هارو می ده
ERROR: The name of an environment variable cannot include an equal sign (=).
ERROR: Invalid syntax.
Type "SETX /?" for usage.
ERROR: Invalid syntax.
Type "SETX /?" for usage.
ERROR: The name of an environment variable cannot include an equal sign (=).
ERROR: The name of an environment variable cannot include an equal sign (=).

2java2
پنج شنبه 07 آذر 1392, 20:15 عصر
متغیر محیطی که من تعریف کرده بودم با نام TBB42_INSTALL_DIR این بود چون از ورژن 4.2 استفاده کردم اسمش رو هم گذاشتم TBB42 نمی دونم ربطی داشته باشه یا نه گفتم بگم شاید ربط داره در ضمن سیستم یا ویندوز من 7 و 64 بیتی هست اما ویژوال استودیو 32 است

rahnema1
پنج شنبه 07 آذر 1392, 20:19 عصر
این یکی رو ببینید

2java2
پنج شنبه 07 آذر 1392, 20:21 عصر
من یک پلاگین مربوط به ویژوال استودیو رو هم از این آدرس
https://www.threadingbuildingblocks.org/download
دانلود کردم و در ویژوال استودیو ی خودم نصب کردم نمی دونم ربطی داشته باشه یا نه

rahnema1
پنج شنبه 07 آذر 1392, 20:24 عصر
نه شما همون TBB22_INSTALL_DIR رو بذارید چون توی سلوشن اینجوری تعریف شده

2java2
پنج شنبه 07 آذر 1392, 20:25 عصر
این بار این پیغام رو در cmd می ده
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

SUCCESS: Specified value was saved.

SUCCESS: Specified value was saved.

SUCCESS: Specified value was saved.

SUCCESS: Specified value was saved.
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

پروژه رو هم که کامپایل کردم باز همون ارور رو داد
شما خودتون تونستید کامپایل کنید؟!!

2java2
پنج شنبه 07 آذر 1392, 20:30 عصر
اسمش رو هم به همون اولی تغییر دادم اما باز نشد یعنی همون ارور هایی قبلی که در cmd می داد رو داد در ضمن من وارد پنجره ی enviroment variable که شدم اونجا TBB_TARGET_ARCH و TBB_TARGET_VS و TBBROOT و TBB_ARCH_PLATFORM اضافه شده !

2java2
پنج شنبه 07 آذر 1392, 20:36 عصر
سلام الان پروژه ی دیگه ای رو اجرا کردم اجرا شد اما چنین اروری رو هم می ده
Error 1 error MSB3073: The command "copy "External\glut32d.dll" "VorteGrid\Debug\"
copy "C:\Program Files\Intel\tbb42_20131003oss\ia32\vc7.1\bin\tbb_d ebug.dll" "VorteGrid\Debug\"

:VCEnd" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppComm on.targets 113 6 VorteGrid

!!!!

2java2
پنج شنبه 07 آذر 1392, 20:40 عصر
رو یک پروژه ی دیگه امتحان کردم این ارور رو داد !!
Error 1 error LNK1181: cannot open input file 'Core.lib' W:\New folder\MjgIntelFluidDemo_part15\LINK VorteGrid

این بار رو فایل Core.lib
البته این یک پروژه ی دیگست
!!!

2java2
پنج شنبه 07 آذر 1392, 20:55 عصر
rahnema1 (http://barnamenevis.org/member.php?305905-rahnema1) فکر می کنم که مسیر کتابخونه رو شناخته اما نمی دونم چرا تمام پروژه هارو ارور می ده تنها پروژه ای که می تونم بازش کنم اینه
software.intel.com/sites/default/files/cd/a5/40314-MjgIntelFluidDemoPart11.rar

rahnema1
پنج شنبه 07 آذر 1392, 21:01 عصر
من ویژوال استادیو ندارم که کامپایل کنم خودم از codeblocks استفاده می کنم فکر کنم باید تغییرات رو در پروژه سی پلاس پاس انجام بدید توی برنامه ویژوال استادیو در قسمت مربوط به build option یا compile option یا linker option این گزینه ها قرار داره من تغییراتی که لازمه رو بر اساس codeblocks می گم شما خودتون معادلش رو توی ویژوال استادیو پیدا کنید
1. روی پروژه vortegrid کلیک راست کنید و آن را در صورت لزوم activate کنید
2. در قسمت build option چون پروژه تحت عنوان release و debug وغیره کامپایل میشه واسه تک تک اونها گزینه هایی که گفته میشه انجام بدید
3. برای linker هر جا این عبارت رو دیدید


$(TBB22_INSTALL_DIR)\ia32\vc7.1

اون رو به گزینه زیر تغییر بدید


$(TBB22_INSTALL_DIR)\intel64\vc10

اگه تغییر دادید و انجام نشد این رو بذارید


$(TBB22_INSTALL_DIR)\ia32\vc10


4. مرحله چهارم هم به همین ترتیب عمل کنید
باز تاکید می کنم مرحله یک برای هر کدام از گزینه ها تکرار میشه
شکلش هم ضمیمه کردم

2java2
پنج شنبه 07 آذر 1392, 21:30 عصر
هم 32 و هم 64 رو جایگزین کردم اما باز هم ارور می ده !!!
آ

rahnema1
پنج شنبه 07 آذر 1392, 21:37 عصر
چه اروری میده؟

2java2
پنج شنبه 07 آذر 1392, 21:40 عصر
وقتی رو دیباگ کامپایل می کنم این ارور
Error 1 error LNK1181: cannot open input file 'tbb_debug.lib' W:\New folder\MjgIntelFluidDemo_part4\LINK VorteGrid

و وقتی رو release

Error 3 error C2511: 'void VortonSim::AdvectTracersSlice(const float &,const unsigned int &,unsigned int,unsigned int)' : overloaded member function not found in 'VortonSim' W:\New folder\MjgIntelFluidDemo_part4\Sim\Vorton\vortonSi m.cpp 953 1 VorteGrid
Error 2 error C2511: 'void VortonSim::ComputeVelocityGridSlice(unsigned int,unsigned int)' : overloaded member function not found in 'VortonSim' W:\New folder\MjgIntelFluidDemo_part4\Sim\Vorton\vortonSi m.cpp 601 1 VorteGrid
Warning 1 warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. W:\New folder\MjgIntelFluidDemo_part4\Sim\Vorton\vortonSi m.cpp 194 1 VorteGrid

2java2
پنج شنبه 07 آذر 1392, 21:45 عصر
البته این واسه 64 هست در ضمن رو لینکر اینطوری بود
$(TBB22_INSTALL_DIR)\intel64\vc10\lib;$(TBB21_INST ALL_DIR)\intel64\vc10\lib;External;%(AdditionalLib raryDirectories)

که من tbb21 رو هم تغییر دادم اما نشد

2java2
پنج شنبه 07 آذر 1392, 21:48 عصر
دوباره که tbb21 رو تغییر دادم روی release این ارور رو می ده
Error 1 error LNK1181: cannot open input file 'tbb.lib' W:\New folder\MjgIntelFluidDemo_part4\LINK VorteGrid