我在Qt5.2.1
下的Ubuntu 14.04
下打开了一个cmake项目。
在project->build->CMake arguments: -DCMAKE_BUILD_TYPE:=Debug
在我成功构建项目并尝试运行它之后,我在Application Output中收到以下错误:
Executable /home/../foo does not exist.
如果我尝试调试应用程序,弹出窗口错误是:
Starting executable failed:
/home/../foo: No such file or directory.
构建了可执行文件,但名称实际上是food
而不是foo
。因此,很明显为什么运行和调试无法找到可执行文件。我是Qt的新人。我在这里缺少什么?
答案 0 :(得分:8)
转到项目 - >运行,然后从"运行配置"按钮组选择"添加"组合框。然后选择" Custom Executable"。
然后浏览并选择可执行文件的路径。
我使用的是Qt 5.9。
答案 1 :(得分:1)
我找到了两个解决方案:
>运行添加新的可执行文件。如果foo2
是第一个,那么为了调试添加一个新的可执行文件,它将被称为food
,这将指向好的可执行文件Qt5.7
。
使用Qt-creator 4.0.2
安装public List<Node> findPath(int startx,int starty,int endx,int endy){
for(int i = 0;i<cols;i++){
for(int j = 0;j<rows;j++){
grid[i][j] = new Node(i,j,obstacles[i][j]);
}
}
for(int i = 0;i<cols;i++){
for(int j = 0;j<rows;j++){
grid[i][j].addNeighbours(grid);
}
}
List<Node> openList = new ArrayList<Node>();
List<Node> closedList = new ArrayList<Node>();
Node start = grid[startx][starty];
Node end = grid[endx][endy];
openList.add(start);
while(openList.size() > 0){
int winner = 0;
for(int i = 0;i <openList.size();i++){
if(openList.get(i).f < openList.get(winner).f){
winner = i;
}
}
Node current = openList.get(winner);
openList.remove(current);
closedList.add(current);
if(nosolution==false){
if(current == end){
List<Node> path = new ArrayList<Node>();
Node tmp = current;
path.add(tmp);
while(tmp.previous!=null){
path.add(tmp);
tmp = tmp.previous;
}
openList.clear();
closedList.clear();
Collections.reverse(path);
return path;
}
}else{
nosolution=true;
}
List<Node> neighbours = current.neighbours;
for(int i = 0;i<neighbours.size();i++){
Node neighbour = neighbours.get(i);
if(!closedList.contains(neighbour) && !neighbour.obstacle){
int tempG = current.g + 1;
boolean newPath = false;
if(openList.contains(neighbour)){
if(tempG < neighbour.g){
neighbour.g = tempG;
newPath = true;
}
}
else{
neighbour.g = tempG;
newPath = true;
openList.add(neighbour);
}
if(newPath){
neighbour.h = heuristic(neighbour,end);
neighbour.f = neighbour.g + neighbour.h;
neighbour.previous = current;
}
}
}
}
return null;
}
- 一切都开箱即用
我更喜欢第二个。