2011-12-05 13 views
11

このコードのサンプルプログラムhttp://sicktoolbox.sourceforge.net/>http://sourceforge.net/projects/sicktoolbox/files/を使用しています。それは基本的に遠隔スキャナドライバです。実行しようとしているプログラムは、私が話しているコードを見たい場合に備えて、sicktoolbox-1.0.1/C++/examples/lms/lms_plot_valuesにあります。C++のコマンドライン引数Eclipse CDT?

とにかく、lms_plot_valuesプロジェクトフォルダには、gnuplot_i.cc、gnuplot_i.hpp、main.cc、Makefile、Makefile.am、Makefile.inが含まれています。だから私はEclipse Indigo CDTに最初の3つのファイルを置いてコンパイルします(コンパイルエラーはなく、Eclipseにはすべて正しくリンクされており、必要なすべてのライブラリが追加されています)が、このサンプルプログラムはコマンドライン引数を取ります。ここまでは、コードが取得する限りです。

/*! 
* \file main.cc 
* \brief Illustrates how to acquire a measurements from the Sick 
*  LMS 2xx using the configured measuring mode. 
* 
* Note: This example should work for all Sick LMS 2xx models. 
* 
* Code by Jason C. Derenick and Thomas H. Miller. 
* Contact derenick(at)lehigh(dot)edu 
* 
* The Sick LIDAR Matlab/C++ Toolbox 
* Copyright (c) 2008, Jason C. Derenick and Thomas H. Miller 
* All rights reserved. 
* 
* This software is released under a BSD Open-Source License. 
* See http://sicktoolbox.sourceforge.net 
*/ 

/* Implementation dependencies */ 
#include <stdlib.h> 
#include <string> 
#include <vector> 
#include <signal.h> 
#include <iostream> 
#include <sicklms-1.0/SickLMS.hh> 
#include "gnuplot_i.hpp" 

using namespace std; 
using namespace SickToolbox; 

bool running = true; 
void sigintHandler(int signal); 

int main(int argc, char * argv[]) { 

    string device_str; // Device path of the Sick LMS 2xx 
    SickLMS::sick_lms_baud_t desired_baud = SickLMS::SICK_BAUD_38400; 

    /* Check for a device path. If it's not present, print a usage statement. */ 
    if ((argc != 2 && argc != 3) || (argc == 2 && strcasecmp(argv[1],"--help") == 0)) { 
    cout << "Usage: lms_plot_values PATH [BAUD RATE]" << endl 
    << "Ex: lms_plot_values /dev/ttyUSB0 9600" << endl; 
    return -1; 
    } 

それが言うように、それはエラーをスローし、プログラムを殺す、それは私がプログラムを実行するコマンドラインから「lms_plot_valuesは/ dev/ttyUSB0 9600」と入力したいと言って、私はそれを行うことはできません私はそれをしたくないので、すべてを日食でやりたいと思っています。私は追加しようとしました:

argv[1] = "/dev/ttyUSB0"; 
argv[2] = "9600"; 

しかし、それはargcのチェックのために動作しませんでした。 "lms_plot_values/dev/ttyUSB0 9600"で渡すと言われているかどうか、なぜそれが期待されるのか、あるいはargc値をどこから得るのか知っていますか?あるいは、私はこれらのパラメータが渡されたと思うようにすることができますか?私はC++がこのように動作する方法にあまり慣れていません。私はJavaだけを使用しました。

ありがとうございました

答えて

18

引数をeclipseでも渡すことができます。プロジェクトをビルドしたら、実行コンフィギュレーションを作成して、引数を渡すことができます。

enter image description here

enter image description here

+0

それを修正:ここではスクリーンショットです。うわー、ありがとう!すべてがうまくいっています。 – user1028641

関連する問題