Qma可执行文件在Cmake项目中不存在

时间:2017-03-03 13:38:25

标签: qt debugging ubuntu-14.04

我在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的新人。我在这里缺少什么?

2 个答案:

答案 0 :(得分:8)

转到项目 - >运行,然后从"运行配置"按钮组选择"添加"组合框。然后选择" Custom Executable"。

然后浏览并选择可执行文件的路径。

我使用的是Qt 5.9。

答案 1 :(得分:1)

我找到了两个解决方案:

    Project中的
  1. >运行添加新的可执行文件。如果foo2是第一个,那么为了调试添加一个新的可执行文件,它将被称为food,这将指向好的可执行文件Qt5.7

  2. 使用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; } - 一切都开箱即用

  3. 我更喜欢第二个。