سؤال

أحاول الحصول على قبضة على 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top