2014-08-30 62 views
4

我正在运行我的代码,它编译没有错误,并用于发送输出到终端,但它现在给我一个提示说You must select a host application to "run" a commands only target您必须选择一个主机应用程序才能运行一个仅限命令的目标? Code :: Blocks

我不知道我做了什么,我从来没有遇到过这个。有没有人有任何想法如何选择正确的主机应用程序?

任何帮助非常感谢,感谢一百万。

这是我试图运行的test.cc文件代码。

#include <iostream> 
#include <fstream> 

#include <TrajectoryDSGenerator.hh> 
#include <DSAdjust.hh> 

int 
main() 
{ 
    // REAL THING!! 
    // Initial conditions 
    uu::Vector x0(2); 
    x0.set(0, 5.0); 
    x0.set(1, 10.0); 
    // Real Parameter 
    uu::Vector P(4); 
    P.set(0, 2); 
    P.set(1, 20); 
    P.set(2, x0[0]); 
    P.set(3, x0[1]); 

    uu::TrajectoryDSGenerator ds(2, 4); 
    ds.setParameters(P); 

    // Where to compute the trajectory 
    uu::TrajectoryDSGenerator::TimeStamps T; 
    T = ds.generateTimeStamps(0.0, 10.0, 0.1); 

    // Generate the sample trajectory at the given timestamps 
    uu::VectorTrajectory Tr(2); 
    uu::TimedVector xic(0.0, x0); 
    Tr = ds.generate(xic, T); 
    // Store the sample trajectory 
    std::ofstream ofd; 
    ofd.open("sample.traj"); 
    ofd << Tr; 
    ofd.close(); 
    std::cout << "Trajectory Saved" << std::endl; 





    // Now read the sample trajectory from the file 
    std::ifstream ifd; 
    uu::VectorTrajectory iTr(2); 
    ifd.open("sample.traj"); 
    ifd >> iTr; 
    ifd.close(); 
    std::cout << "Trajectory Loaded" << std::endl; 

    // Vector with the initial guess of the parameters 
    uu::Vector P0(4); 
    P0.set(0, 10); 
    P0.set(1, 5); 
    P0.set(2, 20); 
    P0.set(3, 2); 
    // P0 = P; 
    //P0.set(0, 5); 
    uu::TrajectoryDSGenerator ods(2, 4); 
    uu::DSAdjust adj(&ods, P0); 
    std::cout << "Added sample trajectory" << std::endl; 
    adj.addSampleTrajectory(iTr); 

    std::cout << "Optimising" <<std::endl; 

    uu::Vector Pf(adj.optimise()); // Learnt parameters from the real trajectory (thing) 
           // This improves your initial guess of the parameters 

    std::cout << "Real Parameters: " << P; 
    std::cout << "Initial guess: " << P0; 
    std::cout << "Learnt Parameters: " << Pf; 

    // Generate a trajectory with the learnt parameters 
    ds.setParameters(Pf); 
    uu::VectorTrajectory TrPf(2); 
    x0.set(0, Pf[2]); 
    x0.set(1, Pf[3]); 
    uu::TimedVector xic1(0.0, x0); 
    TrPf = ds.generate(xic1, T); 

    // Store the trajectory with the improved guess of the parameters 
    ofd.open("result.traj"); 
    ofd << TrPf; 
    ofd.close(); 
    std::cout << "Trajectory Saved" << std::endl; 
    return 0; 
} 
+1

请包括您正在测试的代码块,以及您可以做的关于您期望它做什么的最佳分析,错误以及它发生的位置。谢谢,欢迎来到SO。 :) – canolucas 2014-08-30 20:22:43

+0

感谢@canolucas,我​​编辑了我的上述问题,以显示我正在尝试运行的测试代码。基本上它被分成3个主要部分,一个初始轨迹,一个轨迹猜测,然后它使用优化函数来创建更准确的猜测参数版本。所以我希望它基本上向命令行显示值。希望这可以帮助 – 2014-08-30 21:30:43

回答

5

同样的事情发生在我身上。为了解决这个问题:

  • 转到项目 - >属性

Step 1

  • 转到创建目标标签

Step 2

  • 更改“类型”下拉列表框“控制台应用程序”

Step 3

  • (可选)勾选“暂停时,执行结束”,如果你不想要的终端窗口立即关闭弹出时

Step 4

  • 单击“...”,选择要运行的输出文件,然后单击“保存”。如果弹出一个框询问关于替换文件,请将其替换。

Step 5

问题解决了!

+0

这可以自动化在CMakeLists.txt,也许? – Codecat 2015-05-06 10:47:32

+0

@AngeloGeels也许吧。我不知道;我讨厌CMake。 ;) – refi64 2015-05-06 15:07:58

+0

LINK:致命错误LNK1561:必须定义入口点 – user3083324 2017-07-17 04:01:07

0

1-转到 “项目” 标签顶部

2-左侧

选择 “属性”

3-选择 “构建目标” 标签 4-选择 “调试”

5-在“类型:”旁边,选择您希望豁免“仅命令”的任何内容。如果你不知道要选择在左边选择

7重复“GUI”(一个隐藏的应用程序)或“控制台”(用于控制台窗口的应用程序)

6-选择“释放”是什么步骤5

相关问题