2014年9月30日火曜日

2014年9月28日日曜日

クロスプラットフォームなC/C++ IDE CLion を使ってみた

標題通り Windows,Linux,Mac で使えるC/C++のIDE CLionをMac OS X (10.9)で使ってみた。
現在のところβ版扱いで60日間に限り無料で使える。

以下CLionのスクリーンショット。


特徴としては、以下2点が挙げられる。
・コンパイル関係の設定をCMakeList.txtに書いていく
・Vim Emulator

試しにOpenCVを使ってMBAのiSightのキャプチャをしてみた。OpenCVはVer.2.4.9をソースからコンパイルして/opt/OpenCV/2.4.9配下にインストールしたものを利用する。
以下main.cpp
#include <iostream>#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"
using namespace std;using namespace cv;

int main() {
    CvCapture *capture;    Mat frame, frameCopy, image;
     capture = cvCaptureFromCAMCV_CAP_ANY;()
    if(capture== NULL){
        cout << "Failed to open camera" <<endl;
        return -1;    }

    cvNamedWindow("Result", CV_WINDOW_AUTOSIZE);    cout << "Captureing... " << endl;
    while (1) {
        IplImage *iplImage = cvQueryFrame(capture);        frame = iplImage;        if (frame.empty()) break;        if (iplImage->origin == IPL_ORIGIN_TL) {
            frame.copyTo(frameCopy);        } else {
            flip(frame, frameCopy, 0);        }
        cvShowImage("result", iplImage);        if (waitKey(10) >= 0) break;    }

    cvReleaseCapture(&capture);    cvDestroyWindow("Result");    return 0;}
そして、以下がCMakeList.txt
cmake_minimum_required(VERSION 2.8.4)
project(helloCLion)

set(SOURCE_FILES main.cpp)
add_executable(helloCLion ${SOURCE_FILES})

set(OPENCV_PREFIX_PATH /opt/OpenCV/2.4.9)
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui)
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OPENCV_PREFIX_PATH}/include)
LINK_DIRECTORIES(${OPENCV_PREFIX_PATH}/lib)
TARGET_LINK_LIBRARIES(helloCLion ${OpenCV_LIBS})
7行目以降がOpenCV関係の設定

問題は、デバッグしようとするとコンソールに下記が出力されデバッグできない。
/Users/hayato/Library/Caches/clion10/cmake/generated/6982c880/6982c880/Debug/helloCLion
During startup program exited with code 1.

Process finished with exit code 0

CLionはデバッガとして同梱の(/Applications/CLion EAP.app/Contents/bin/gdb/bin/gdb)を使っているらしく、このgdbにコード証明書があたっていないのが原因かと考えコード証明書をあててみたが現象は改善せず。