Arguments de ligne de commande C ++ Eclipse CDT?

Je suis en utilisant un exemple de programme à partir de ce code http://sicktoolbox.sourceforge.net/ > http://sourceforge.net/projects/sicktoolbox/files/ . C'est essentiellement une distance de pilote de scanner. Le programme que je suis en train de lancer est en sicktoolbox-1.0.1/c++/exemples/lms/lms_plot_values au cas où vous vouliez voir le code dont je parle.

De toute façon, l'lms_plot_values dossier de projet contient gnuplot_i.cc, gnuplot_i.php, main.cc, Makefile Makefile.suis, Makefile.dans. Alors, j'ai mis les trois premiers fichiers dans mon Eclipse Indigo CDT, compiler (pas d'erreurs de compilation, tout est correctement lié dans Eclipse déjà et que toutes les bibliothèques requises sont ajoutés), mais cet exemple de programme est écrit pour prendre en arguments de ligne de commande. Ici se trouve aussi loin que le code reste.

/*!
 * \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;
  }

Comme il le dit, il renvoie une erreur et tue le programme, disant qu'il veut me taper "lms_plot_values /dev/ttyUSB0 9600" à partir de la ligne de commande pour exécuter le programme, mais je ne peux pas le faire, et je suis de vouloir tout faire dans eclipse, donc je ne veux pas le faire. J'ai essayé d'ajouter:

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

Mais cela ne fonctionne pas en raison de l'argc contrôles. Savez-vous si il dit de passer dans la "lms_plot_values /dev/ttyUSB0 9600", pourquoi il serait attends, où il se serait au argc valeurs? Ou comment je peux le faire penser que ces paramètres ont été passés? Je ne suis pas très familier avec la façon dont C++ œuvres de ce genre, je ne l'ai utilisé Java.

Merci pour toute aide

source d'informationauteur user1028641