Difference between revisions of "HOWTO configure QtCreator with ns-3"

From Nsnam
Jump to: navigation, search
(Add John Abraham's approach)
Line 1: Line 1:
== Basic Configuration ==
 
 
* Open a terminal; cd to the ns-3-dev directory and run "./waf configure --enable-examples" or whatever configuration is to your taste, and "./waf build".
 
* Open a terminal; cd to the ns-3-dev directory and run "./waf configure --enable-examples" or whatever configuration is to your taste, and "./waf build".
 +
* You have two options now:
 +
** chaining QtCreator to waf, '''or'''
 +
** using QtCreator with qmake instead of waf.
 +
 +
== Variant 1: chaining QtCreator to waf ==
 +
=== Basic Configuration ===
 
* Run "./waf shell", and then '''in the same terminal''' start QtCreator using "qtcreator" command.
 
* Run "./waf shell", and then '''in the same terminal''' start QtCreator using "qtcreator" command.
 
** Under or ''Tools''->''Options''->''Text Editor''
 
** Under or ''Tools''->''Options''->''Text Editor''
Line 8: Line 13:
 
*** On ''File Naming'' tab set '''Source suffix:''' to "cc"
 
*** On ''File Naming'' tab set '''Source suffix:''' to "cc"
  
== Importing project ==
+
=== Importing project ===
 
* Go to ''File'' menu and select ''New File or Project''.
 
* Go to ''File'' menu and select ''New File or Project''.
 
* Then go to ''Import Project''->''Import Existing Project'' and click ''Choose...'' button.
 
* Then go to ''Import Project''->''Import Existing Project'' and click ''Choose...'' button.
Line 20: Line 25:
 
** Click ''Finish''
 
** Click ''Finish''
  
== Configuring project ==
+
=== Configuring project ===
 
* Click '''Edit''' on the left; open "qtcreator-project-ns-3-dev.includes" file.
 
* Click '''Edit''' on the left; open "qtcreator-project-ns-3-dev.includes" file.
 
** Edit the line "<path-to-ns-3-dev>/build/ns3" to be "<path-to-ns-3-dev>/build"
 
** Edit the line "<path-to-ns-3-dev>/build/ns3" to be "<path-to-ns-3-dev>/build"
Line 39: Line 44:
 
*** '''Working directory:''' is again OK by default
 
*** '''Working directory:''' is again OK by default
  
== FAQ ==
+
=== FAQ ===
 
* Q: I get an error "./build/examples/tutorial/ns3-dev-first-debug: error while loading shared libraries: libns3-dev-point-to-point-debug.so: cannot open shared object file: No such file or directory".
 
* Q: I get an error "./build/examples/tutorial/ns3-dev-first-debug: error while loading shared libraries: libns3-dev-point-to-point-debug.so: cannot open shared object file: No such file or directory".
 
** A: Please make sure that you are running "qtcreator" inside "./waf shell".
 
** A: Please make sure that you are running "qtcreator" inside "./waf shell".
 +
 +
== Variant 2: using QtCreator with qmake instead of waf ==
 +
=== Configuration and Building ===
 +
* Go to ''File'' menu and select ''New File or Project''.
 +
* Then go to ''Non-Qt Project''->''Plain C++ Project'' and click ''Choose...'' button.
 +
* On '''Introduction and Project Location''' choose whatever name you want and clik ''Next >''.
 +
* On '''Project Management''' click ''Next >''.
 +
* On '''Target Setup''' click ''Next >''.
 +
* Right-click on the ''Sources'' folder and select ''Add Existing Files...''. Use it to add all required models and helpers.
 +
* Replace the contents of "main.cpp" with your example file.
 +
* Open the "<project-name>.pro" file and add
 +
INCLUDEPATH += <path-to-ns-3-dev>/build
 +
* Click ''Build'' (this uses qmake and make, rather than waf).
 +
 +
=== Debugging ===
 +
* Set breakpoints and click Debug.
 +
 +
=== Notes ===
 +
* To debug a running ns-3 program, use ''Debug''->''Start Debugging''->''Attach to Running Local Application''.
 +
* To start and run a "waf" built ns-3 application, first set click ''Projects'' on the left and then under ''Targets'' and ''Desktop'' select ''Run''. Under '''Run Configuration''', set '''Executable:''' to "<path-to-ns-3-dev>/build/examples/tutorial/ns3-dev-first-debug" and use ''Debug''->''Start Debugging''->''Start Debugging''.

Revision as of 13:26, 6 October 2012

  • Open a terminal; cd to the ns-3-dev directory and run "./waf configure --enable-examples" or whatever configuration is to your taste, and "./waf build".
  • You have two options now:
    • chaining QtCreator to waf, or
    • using QtCreator with qmake instead of waf.

Variant 1: chaining QtCreator to waf

Basic Configuration

  • Run "./waf shell", and then in the same terminal start QtCreator using "qtcreator" command.
    • Under or Tools->Options->Text Editor
      • On Completion tab under Behavior enable Insert space after function name
    • Under Tools->Options->C++
      • On Code Style tab set Current setting: to "GNU [built-in]"
      • On File Naming tab set Source suffix: to "cc"

Importing project

  • Go to File menu and select New File or Project.
  • Then go to Import Project->Import Existing Project and click Choose... button.
  • Project Name and Location
    • "Project name:" should be something like "qtcreator-project-ns-3-dev", because QtCreator will create couple of files in ns-3-dev directory and you want to be able to delete them easily if needed.
    • "Location:" should be your ns-3-dev directory.
    • Click Next >
  • File Selection
    • Click Next >
  • Project Management
    • Click Finish

Configuring project

  • Click Edit on the left; open "qtcreator-project-ns-3-dev.includes" file.
    • Edit the line "<path-to-ns-3-dev>/build/ns3" to be "<path-to-ns-3-dev>/build"
  • Click Projects on the left.
    • Under Build Settings
      • Remove make all under Build Steps, and click Add Build Step->Custom Process Step
        • 'Command: should be "./waf"
        • Working directory: is OK by default
        • Command arguments: should be "build"
      • Remove make clean under Clean Steps, and click Add Clean Step->Custom Process Step
        • 'Command: should be "./waf"
        • Working directory: is OK by default
        • Command arguments: should be "clean"
    • Under Run Settings
      • Set Executable: to "./build/examples/tutorial/ns3-dev-first-debug" or any executable you want to run and debug
        • If you set it to "examples/tutorial/first" make sure you used "--enable-examples" option in "./waf configure" prior to running the code
      • Leave Arguments: blank
      • Working directory: is again OK by default

FAQ

  • Q: I get an error "./build/examples/tutorial/ns3-dev-first-debug: error while loading shared libraries: libns3-dev-point-to-point-debug.so: cannot open shared object file: No such file or directory".
    • A: Please make sure that you are running "qtcreator" inside "./waf shell".

Variant 2: using QtCreator with qmake instead of waf

Configuration and Building

  • Go to File menu and select New File or Project.
  • Then go to Non-Qt Project->Plain C++ Project and click Choose... button.
  • On Introduction and Project Location choose whatever name you want and clik Next >.
  • On Project Management click Next >.
  • On Target Setup click Next >.
  • Right-click on the Sources folder and select Add Existing Files.... Use it to add all required models and helpers.
  • Replace the contents of "main.cpp" with your example file.
  • Open the "<project-name>.pro" file and add
INCLUDEPATH += <path-to-ns-3-dev>/build
  • Click Build (this uses qmake and make, rather than waf).

Debugging

  • Set breakpoints and click Debug.

Notes

  • To debug a running ns-3 program, use Debug->Start Debugging->Attach to Running Local Application.
  • To start and run a "waf" built ns-3 application, first set click Projects on the left and then under Targets and Desktop select Run. Under Run Configuration, set Executable: to "<path-to-ns-3-dev>/build/examples/tutorial/ns3-dev-first-debug" and use Debug->Start Debugging->Start Debugging.