ВАЖНОЕ РЕДАКТИРОВАНИЕ
То, что написано в этом редакторе, работает по крайней мере, когда я запускаю исполняемый файл "из XCODE".Когда я нахожу каталог, в который он встроен, и дважды щелкаю по нему, я получаю это сообщение:
Last login: Sun Nov 24 17:05:19 on ttys002
MacBook-Pro-de-totouser:~ totouser$ /Users/totouser/Library/Developer/Xcode/DerivedData/THECONSOLEAPPLICATION-hknajgycvjjcotdtkeeyxbzmtfty/Build/Products/Debug/THECONSOLEAPPLICATION ; exit;
dyld: Library not loaded: libmkl_sequential.dylib
Referenced from: /Users/totouser/Library/Developer/Xcode/DerivedData/THECONSOLEAPPLICATION-hknajgycvjjcotdtkeeyxbzmtfty/Build/Products/Debug/THECONSOLEAPPLICATION
Reason: image not found
Trace/BPT trap: 5
logout
[Процесс завершен]
Если кто-то может помочь, это было бы неплохопотому что я действительно застрял здесь
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// *
Хорошо,Мне удалось сделать то, что вы хотели сделать:
Я установил m_ccompxe_2013_sp1.1.103 под Mac OS 10.8.5 64bit, где я использую XCode 5.0.2.
Первое, что нужно сделать для ссылкиMKL включить каталог в проекте.Прежде чем сделать это, я хотел бы подчеркнуть, что даже после того, как я это сделал, мне никогда не удавалось написать что-то вроде этого в коде c ++
#include "mkl.h"
, и я был вынужден указать полный путь к mkl.hфайл, который был немного скучным, так как в идеале я хотел бы поставить так:
#include <mkl>
#include <mkl_vsl.h>
#include <mkl_vsl_functions.h>
и т. д.Так, я нашел, например, файл «iostream» на моем Mac, скопировал его куда-то, изменил имя копии на mkl и поместил содержимое mkl.h (который находится в /opt/intel/composer_xe_2013_sp1.1.103/mkl/include"на моем mac) в нем, сохраните его в" /opt/intel/composer_xe_2013_sp1.1.103/mkl/include ", и я сослался на каталог" /opt/intel/composer_xe_2013_sp1.1.103/mkl/include "во включаемых каталогахмой проект xcode.Как я это сделал?
Я дважды щелкнул «target», затем «build settings», затем «all» и искал меню «search paths».Там
1) в «пути поиска заголовка», отладке и выпуске я помещаю «/opt/intel/composer_xe_2013_sp1.1.103/mkl/include» и «/opt/intel/composer_xe_2013_sp1.1.103/mkl/include/ intel64 "
2) в" пути поиска библиотеки ", отладку и выпуск я помещаю" /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/intel64 "и" /opt/intel/composer_xe_2013_sp1.1.103/compiler / lib "и" /opt/intel/composer_xe_2013_sp1.1.103/mkl/lib"
Затем я отредактировал переменную окружения "DYLD_LIBRARY_PATH" (только в моем проекте), чтобы сделать ее равной "/ opt / intel /composer_xe_2013_sp1.1.103 / составитель / Библиотека: /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/intel64: /opt/intel/composer_xe_2013_sp1.1.103/mkl/lib».Как я это сделал?Я щелкнул по названию значка моего проекта в непосредственной близости от треугольника и квадратных кнопок слева от верхней панели, а затем я нажал на «Редактировать схему», которая открыла окно, а затем нажал «Запустить мой проект».«Отладка» в левом столбце этого окна, а затем я щелкнул «Аргумент», перешел в «переменные среды» и + «новая переменная с именем DYLD_LIBRARY_PATH со значением
/ opt / intel / composer_xe_2013_sp1.1.103/compiler/lib:/opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.1.103/mkl/lib
Bizarrly, этот набор также используется для запуска моего проекта", что было хорошо для меня, но я все еще нахожу это странным.В любом случае.
После этого мне пришлось добавить команду, сообщающую компилятору (LLVM 5, ничего не изменившую с этим), чтобы связать библиотеки, которые я собирался использовать:
дляэто я дважды кликнул обратно на «target», затем вошел в «настройки сборки», затем во «all», и искал тогда «другие флаги компоновщика», где в отладке и в релизе я поставил:
-lmkl_sequential-lmkl_core -lmkl_intel_lp64 -lpthread -lmkl_intel_thread -liomp5
Затем в main.cpp я поставил, например:
#include <iostream>
// #include "/opt/intel/composer_xe_2013_sp1.1.103/mkl/include/mkl.h"
// #include "/opt/intel/composer_xe_2013_sp1.1.103/mkl/include/mkl_vsl.h"
// #include "/opt/intel/composer_xe_2013_sp1.1.103/mkl/include/mkl_vsl_functions.h"
#include <mkl>
#include <mkl_vsl.h>
#include <mkl_vsl_functions.h>
int main(int argc, const char * argv[])
{
VSLStreamStatePtr stream;
vslNewStream(&stream, VSL_BRNG_SFMT19937, 777);
double * pUNIF = new double [ 1000000 ] ;
vdRngUniform(VSL_RNG_METHOD_UNIFORM_STD_ACCURATE, stream, 1000000, pUNIF, 0.0, 1.0);
vslDeleteStream(&stream);
for (int i = 0 ; i < 100000 ; ++i )
{
std::cout << *(pUNIF+i) << std::endl;
}
std::cout << "END." << std::endl;
getchar();
return 0;
}
Затем я собрал и запустил, у меня все было в порядке; -)
Как сказал бы уважаемый сэр Малкольм Такер: «Никогда не легко, никогда не ***** просто».
С уважением,
MEF.