Reputation: 33026
This is the program I'm trying to compile.
#include <iostream>
#include <string>
#include <vector>
#include <unistd.h>
using namespace std;
vector<string> paramlist;
const char *programname = "abc";
const char **args = new const char* [paramlist.size()+2]; // extra room for program name and sentinel
args [0] = programname; // by convention, args[0] is program name
for (int j = 0; j < paramlist.size()+1; ++j) // copy args
args [j+1] = paramlist[j] .c_str();
args [paramlist.size()+1] = NULL; // end of arguments sentinel is NULL
execv (programname, (char **)args);
When I try to compile it I get these error messages:
test.cpp:11: error: expected constructor, destructor, or type conversion before ‘=’ token
test.cpp:12: error: expected unqualified-id before ‘for’
test.cpp:12: error: expected constructor, destructor, or type conversion before ‘<’ token
test.cpp:12: error: expected unqualified-id before ‘++’ token
test.cpp:15: error: array bound is not an integer constant
test.cpp:15: error: expected constructor, destructor, or type conversion before ‘=’ token
test.cpp:17: error: expected constructor, destructor, or type conversion before ‘(’ token
Upvotes: 1
Views: 686
Reputation: 19305
Your program contains code but it needs to be contained within a function. Try wrapping all your code after the using namespace std;
line with a function like int main
. Google for any "Hello world" C++ sample to see an example.
Upvotes: 2