2012-05-23 2 views
1

Мне интересно, было ли обходное решение для использования R-пакета Rcpp в проекте Visual C++ в Visual Studio. Согласно FAQ Rcpp, это невозможно. Я также наткнулся на другой пакет R под названием R.NET. Может ли это работать только с C#, но, кажется, нет примеров из Visual C++? Есть ли другой вариант для этого, которого я не вижу? Даже если я вынужден работать с C#, может ли кто-нибудь задуматься о проблемах с задержкой с этим для высокочастотной торговой среды? Thanks for any feedbackИспользование Visual C++ с R

ответ

2

Вопрос в том, что вы действительно хотите связать с чем. Если вы хотите использовать R в C++ Rcpp, это неправильное решение, поскольку оно связывает C++ с R (а не наоборот, как следует из вашего вопроса).

Если вы хотите подключить R к C++ и использовать Visual C++ для создания только кода на C++ (вместо ссылки R на C++), вы можете проверить this recent blog post (найденный через R-bloggers.com). Это говорит вам о возможном способе этого.

4

Мы четко задаем этот вопрос в FAQ Rcpp (который поставляется как виньетка в пакете, находится на сайте CRAN и его зеркалах и на моем сайте).

Вкратце, Rcpp поддерживает ту же самую инструментальную цепочку, которую поддерживает R. А в Windows это MinGW (порт gcc to Windows), предоставляемый пакетом Rtools для R.

R Core поддерживает только MinGW, и мы делаем то же самое. Если можно скомпилировать R с Visual Studio, все будет проще, но поскольку Rcpp сидит поверх R, мы играем рукой, с которой мы имеем дело.

Так что извините, ответ «Нет» на Visual Studio.

1

Visual Studio отлично работает с Rcpp. Проводил годами. Я не согласен с Дирком Эддельбуэттелем.

Это важный факт. Например, существуют очень важные библиотеки (Intels MKL, QT graphics framework), которые фактически не, совместимые с minGW.

Я поддерживаю (исправленную и вырезанную) вилку Rcpp на github (https://github.com/rohan-shah/Rcpp), подходящую для компиляции с Visual Studio с cmake. Я считаю, что патч - это что-то вроде пяти строк.

Отказ от ответственности: Это неудобно использовать, и вы должны знать, что делаете. Если вы do знаете, что вы делаете, я сделал для вас немало работы. См. https://github.com/rohan-shah/mpMap2 для примера использования исправленного Rcpp с Visual Studio.

+0

Это всегда будет очень неудобно использовать так долго _as R yourself_ не поддерживает этот компилятор. Таким образом, «нет поддержки» от Rcpp. Если вы знаете, что делаете, и вы изгибаетесь, вы знаете, что делать. Остальная часть вашего сообщения здесь просто ложна, так как Qt можно использовать отлично с MinGW (и я сделал это 10 лет назад, когда я все еще работаю в Windows). См. Также RInside. –

+0

Я так счастлив, что он работал десять лет назад. Как насчет сегодня? MinGW поддерживается QT только для 32-разрядных, что для всех целей и целей означает, что он * не * поддерживается. Вы можете * попробовать * и построить его из исходного с 64-битного - я, конечно, не смог заставить его работать. Чтобы процитировать вас на себе, * это всегда будет очень сложно использовать до тех пор, пока сам QT не поддерживает эту компиляцию. Почему вы не можете согласиться с тем, что это действительно законное решение проблемы программного обеспечения? Как вы думаете, я не рассматривал альтернативы? – DaBookshah

+0

1) Qt поддерживает MinGW из коробки: https://wiki.qt.io/MinGW. 2) Как я уже говорил, Rcpp использует то, что поддерживает R в качестве инструментальной цепочки, и пока R не поддерживает VS, вы лаете на неправильном дереве - поговорите с R Core.3) Ваше отношение таково, что у меня ограниченный интерес к вам. –