IDE / SETUP لتطوير الحزمة مع رمز C ++ مدمج
سؤال
أحاول الحصول على قبضة على C ++/RCPP كامتداد للمهام الحسابية الثقيلة. في نهاية المطاف ، يجب دمج LIBs C ++ هذه في حزمة ، وهكذا أبحث عن إعداد / مجموعة من الأدوات / IDE التي سأحتاج إلى العمل بسهولة. أعلم أن الكثير يعتمد على الذوق ، ولكن لا يزال من الجيد معرفة خياراتي قبل الاختيار.
لذلك: عندما تقوم بتطوير حزم R باستخدام C ++ libs ، ما هو الإعداد الذي تعمل معه؟
- هل تستخدم نفس المحرر / IDE لـ R و C ++ وأي واحد (أو أي منها)؟
- هل توجد أدوات إضافية (بصرف النظر عن RTOOLS) مهمة للحصول عليها؟
- هل هناك تعديلات في الإعداد العام مهم لمعرفة أو تسريع العملية بشكل كبير؟
آسف إذا تم طرح هذا السؤال من قبل. لقد وجدت قائمة بجميع المحررين لـ R ، ولكن لا شيء موجه على وجه التحديد نحو تطوير الحزم بما في ذلك رمز C ++. أي تلميحات أو نصائح موضع تقدير حقًا.
تحرير: النظام الأساسي هو Windows ، لكن يمكنني الانتقال إلى Linux بدون مشاكل (التمهيد المزدوج ، الشيء الوحيد الذي يمنعني من استخدام Ubuntu هو عدم وجود برنامج تشغيل لائق لمجموعة بطاقتي القديمة/الشاشة القديمة)
المحلول
الكسوف + Statet إذا كنت تريد الانضمام إلينا في العالم الحديث :)
نصائح أخرى
أنا بالطبع لصالح المزيد RCPP الشغل :)
أما بالنسبة لأسئلتك ، وترتيبها:
- نفس المحرر (EMACs) الذي يجعل الاتساق اللطيف على أي النظام الأساسي الذي أستخدمه (معظمها Linux ، Windows من حين لآخر) ؛ للسجل الذي تحدثت إليه أيضًا لصالح
qtcreator
IDE التي هي لطيفة جدا على Linux و Windows (ولكن لا تفعل r). - لا ، على Linux ، كل شيء جاهز (ونعم ، على Windows تحتاج إلى Rtools) ...
- ليس حقًا - ربما تعرف بالفعل في النسق وهو أمر جيد لاختبار مقتطفات رمز R/C ++.
يحرر: لذلك ، لا يختلف هذا حقًا عن تطوير R / C / C ++ / Fortran العادي. وفي هذه الحالة أشير عادة إلى RAP القسم 6 وهو مخصص بالكامل لـ R و Emacs :) مع ذلك ، فإن وضع emacs لعمل C ++ ليس واضحًا وهناك عدد من الأسئلة والمنشورات هنا. أنا لا أستخدم أي متصفح فئة معين ولكن هناك بعض ، وكذلك مناهج لإكمال الأنواع وما إلى ذلك ، إلخ.
ستحتاج إلى محرر يمكنه التعامل مع لغات متعددة ، R ، C+، ربما Makefiles ، إلخ. نظرًا لأنك ذكرت Rtools يبدو أنك على Windows. أود أن أقترح Notepad ++ أنه يتعامل مع R و C ++ ومجموعة كبيرة من اللغات الأخرى. بالإضافة إلى أنه يمكنك إعداد أمر مخصص من خلال NPPEXEC لإنشاء الحزمة بسهولة أكبر. لقد طورت بعض الحزم التي تستفيد بكثافة من C/C ++ باستخدام Notepad ++.
لقد كتبت للتو برنامج نصي Cmake لإنشاء مشروع Eclipse CDT لتطوير حزمة RCPP.
علاوة على ذلك ، قد تكون CMake قادرة على إنشاء مشاريع كود أو مشاريع KDEvelop3 ، لكنني لم أتحقق من هذه الميزات ، حتى الآن.
بيئة
- cmake> = 2.8.7
- Eclipse> = 3.7
- Eclipse CDT> = 1.4.2
- r> = 2.15
- RCPP> = 0.10
ترتيب
تنزيل findlibr.cmake من جيثب المقدمة من RSTUDIO
إنشاء حزمة RCPP ، على سبيل المثال
library(Rcpp) Rcpp.package.skeleton("RcppPackage")
ضع البرنامج النصي التالي (أو قم بتنزيله من جوهر)، اسم الشيئ cmakelists.txt, ، في المجلد الذي تم إنشاؤه مثل
RcppPackage
في المثال السابق.cmake_minimum_required(VERSION 2.8) project(RcppPackage) find_package(LibR) if(${LIBR_FOUND}) else() message(FATAL_ERROR "No R...") endif() message(STATUS ${CMAKE_SOURCE_DIR}) execute_process( COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "stopifnot(require('Rcpp'));cat(Rcpp:::Rcpp.system.file('include'))" OUTPUT_VARIABLE LIBRCPP_INCLUDE_DIRS ) include_directories(BEFORE ${LIBR_INCLUDE_DIRS}) message(STATUS ${LIBR_INCLUDE_DIRS}) include_directories(BEFORE ${LIBRCPP_INCLUDE_DIRS}) message(STATUS ${LIBRCPP_INCLUDE_DIRS}) add_custom_target(RcppPackage ALL COMMAND find ${CMAKE_SOURCE_DIR} -name "*.o" -exec rm "{}" "\;" COMMAND find ${CMAKE_SOURCE_DIR} -name "*.so" -exec rm "{}" "\;" COMMAND ${LIBR_EXECUTABLE} "--slave" "-e" "\"stopifnot(require(roxygen2));roxygenize('${CMAKE_SOURCE_DIR}',roclets=c('rd','collate','namespace'))\"" COMMAND ${LIBR_EXECUTABLE} CMD INSTALL "${CMAKE_SOURCE_DIR}")
يعدل أو يكيف
roxygenize
وR CMD INSTALL
في cmakelists.txtتوليد المشروع مع cmake
mkdir build # don't create subdirectory of RcppPackage cd build cmake -G "Eclipse CDT4 - Unix Makefiles" <path to RcppPackage> -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE
فتح مشروع الكسوف والاستيراد من
build
(نرى cmake-eclipse-cdt فمثلا). بعد الفهرسة ، استمتع بالعديد من الميزات المريحة التي توفرها Eclipse CDT مثل التتبع والإكمال التلقائي.يمكنك بناء المشروع الذي سيتم تحويله إليه
R CMD INSTALL
أو أي شيء في cmakelists.txt.