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

From Nsnam
Jump to: navigation, search
(Miscellaneous tips: Added subsection "Clearing Eclipse errors" following ns-3-users post entitled "configure eclipse for NS3.26")
(Clearing Eclipse errors: Add STD C++ configuration)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Configure Mercurial ==
 
== Configure Mercurial ==
 +
 +
This section is obsolete. The project has moved to GitLab so use git (through eGit plugin).
  
 
* First download eclipse IDE for C++ developers from http://www.eclipse.org
 
* First download eclipse IDE for C++ developers from http://www.eclipse.org
Line 36: Line 38:
 
[[File:Debug-main.png|200px|thumb|right|Debugger main tab]]
 
[[File:Debug-main.png|200px|thumb|right|Debugger main tab]]
 
[[File:Debug-env.png|200px|thumb|right|Debugger environment tab]]
 
[[File:Debug-env.png|200px|thumb|right|Debugger environment tab]]
 +
[[File:App-debug-add-ns-log.png|200px|thumb|right|Debugger adding NS_LOG variable]]
  
 
Suppose you want to debug a test application called "test" under the scratch folder. Here are the steps:
 
Suppose you want to debug a test application called "test" under the scratch folder. Here are the steps:
Line 45: Line 48:
 
* Go into the "Environment" tab and click on "New" to create a new variable
 
* Go into the "Environment" tab and click on "New" to create a new variable
 
* Type under the Name field "LD_LIBRARY_PATH" (or "DYLD_LIBRARY_PATH" if you are on a MacOSX)  
 
* Type under the Name field "LD_LIBRARY_PATH" (or "DYLD_LIBRARY_PATH" if you are on a MacOSX)  
* Type under the Value field "'''${workspace_loc:ns-3-dev}/build'''"
+
* Type under the Value field:
 +
** "'''${workspace_loc:ns-3-dev}/build'''" for ns-3.28 and former
 +
** "'''${workspace_loc:ns-3-dev}/build/lib'''" for ns-3.29 and later (i.e. all versions after April 13 2018)
 +
* Add a new variable named "NS_LOG", used to activate logging (see manual)
 
* Be sure the "Append environment to native environment" is selected
 
* Be sure the "Append environment to native environment" is selected
 
* Click on Apply and on Debug if you want to immediately debug the application
 
* Click on Apply and on Debug if you want to immediately debug the application
  
 
--[[User:Socket|Socket]] 09:06, 26 January 2011 (UTC)
 
--[[User:Socket|Socket]] 09:06, 26 January 2011 (UTC)
 +
 +
<br clear="all"/>
 +
 +
 +
== Configure Test-runner ==
 +
 +
[[File:App-test-runner-duplicate.png|200px|thumb|right|Generate test-runner app from debug]]
 +
[[File:App-test-runner-arguments.png|200px|thumb|right|Test-runner app arguments]]
 +
 +
Here are the steps to add and configure a test-runner application which prompts the test-suite to execute:
 +
 +
* Click on the "Debug Configurations" option under the "Run" menu
 +
* Select the debug application defined in the previous section and duplicate it (so as to inherit from its configuration). Rename the new application
 +
* Click on the "Browse" button under the "Project" section and select the "'''[project name]-test-runner-debug'''" executable in "'''[project path]/build/utils'''"
 +
* Go to the "Arguments" tab and add "'''--assert-on-failure --suite=${string_prompt}'''"
 +
* Click on Apply and on Debug if you want to immediately debug the application
 +
 +
<br clear="all"/>
 +
 +
 +
== Applying ns-3 formatting ==
 +
 +
[[File:Formatter-import.png|200px|thumb|right|Import ns-3 formatting]]
 +
 +
This section shows how to configure the main ns-3 formatting rules within Eclipse. This is '''not''' intended replace the '''check-style.py''' tool, but rather reduce the number of changes the latter has to make.
 +
 +
* Save the xml code below in a xml file
 +
* Select "C/C++ General"/"Formatter" menu the Project properties
 +
* Enable project specific settings
 +
* Import the previously saved file and apply modifications.
 +
 +
XML formatting to copy
 +
<blockquote>
 +
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
 +
<profiles version="1">
 +
 +
<profile kind="CodeFormatterProfile" name="ns-3" version="1">
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_body" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression" value="34"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_empty_lines" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_binary_expression" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="next_line_shifted"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces" value="0"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block" value="next_line_shifted"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration" value="82"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_member_access" value="0"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration" value="end_of_line"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.lineSplit" value="90"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_compact_if" value="16"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_declarator_list" value="16"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment" value="1"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list" value="83"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block_in_case" value="next_line_shifted"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.compact_else_if" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_block" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.tabulation.char" value="space"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.continuation_indentation" value="2"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indentation.size" value="2"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_expression_list" value="0"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header" value="false"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.join_wrapped_lines" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_assignment" value="0"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters" value="do not insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier" value="true"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.alignment_for_enumerator_list" value="49"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.tabulation.size" value="2"/>
 +
 +
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
 +
 +
</profile>
 +
 +
</profiles>
 +
 +
</blockquote>
  
 
<br clear="all"/>
 
<br clear="all"/>
Line 118: Line 492:
 
* Re-build the index of the project (by right-clicking your CDT project and selecting 'Index' then 'Rebuild').
 
* Re-build the index of the project (by right-clicking your CDT project and selecting 'Index' then 'Rebuild').
 
If errors are still displayed in the project directory tree, open the concerned files to clear them.
 
If errors are still displayed in the project directory tree, open the concerned files to clear them.
 +
 +
Another means of clearing errors is configuring the C++ standard GCC uses to C++14 (or C++11 at least), by following the steps in the screenshot.
 +
[[File:Preproc-include-std.png|200px|thumb|right|Builder Settings Screenshot]]

Latest revision as of 10:30, 17 June 2020

Configure Mercurial

This section is obsolete. The project has moved to GitLab so use git (through eGit plugin).

  • First download eclipse IDE for C++ developers from http://www.eclipse.org
  • Install eclipse into you operating system
  • Install mercurial eclipse plugin:
  • We suppose that you already have mercurial installed on your machine
  • start eclipse, it will create a workspace directory in your user's directory named "workspace". You can choose whatever you want but it is advised to use a directory just for the Eclipse projects. Eclipse will put invisible files there and moving the projects from one place to another might be a pain. Mine is in ~/Development/workspace, others prefer ~/src/workspace. You choose your.
  • clone the mercurial reppository: go to ~/src and execute hg clone http://code.nsnam.org/ns-3-dev ns-3-dev
  • create a new empty C++ project with your preferred name and the path is ~/src/ns-3-dev on
  • click right on the project and go to team->share project
  • click on next and click on use local hg and finish

You should have now your project configured with eclipse and be able to pull, update, view history, etc in eclipse. The next steps will allow you to configure, compile and run the code from eclipse.

Configure Waf Builder

Builder Settings Screenshot
Builder Behaviour Screenshot
  • Click right on the project and click on properties
  • Click on C/C++ build and configure the builder
  • Uncheck the box Use default build command
  • Uncheck the box Generate makefile automatically
  • Write ${workspace_loc:ns-3-dev}/waf in the build command
  • Make sure your build directory is the build directory in ns-3-dev (${workspace_loc:ns-3-dev})
  • Click on the behaviour tab
  • Remove the `all` option in front of the build checkbox and write `build`
  • Now when you click on build you will be able to build the project using waf


Configure Debugger

Debugger main tab
Debugger environment tab
Debugger adding NS_LOG variable

Suppose you want to debug a test application called "test" under the scratch folder. Here are the steps:

  • Click on the "Debug Configurations" option under the "Run" menu
  • Create a new configuration and choose a name for it
  • Click on the "Browse" button under the "Project" section and select the project
  • Click on the "Search Project" button under the "C/C++ Application" section and type the name of the application (test in our case)
  • Go into the "Environment" tab and click on "New" to create a new variable
  • Type under the Name field "LD_LIBRARY_PATH" (or "DYLD_LIBRARY_PATH" if you are on a MacOSX)
  • Type under the Value field:
    • "${workspace_loc:ns-3-dev}/build" for ns-3.28 and former
    • "${workspace_loc:ns-3-dev}/build/lib" for ns-3.29 and later (i.e. all versions after April 13 2018)
  • Add a new variable named "NS_LOG", used to activate logging (see manual)
  • Be sure the "Append environment to native environment" is selected
  • Click on Apply and on Debug if you want to immediately debug the application

--Socket 09:06, 26 January 2011 (UTC)



Configure Test-runner

Generate test-runner app from debug
Test-runner app arguments

Here are the steps to add and configure a test-runner application which prompts the test-suite to execute:

  • Click on the "Debug Configurations" option under the "Run" menu
  • Select the debug application defined in the previous section and duplicate it (so as to inherit from its configuration). Rename the new application
  • Click on the "Browse" button under the "Project" section and select the "[project name]-test-runner-debug" executable in "[project path]/build/utils"
  • Go to the "Arguments" tab and add "--assert-on-failure --suite=${string_prompt}"
  • Click on Apply and on Debug if you want to immediately debug the application



Applying ns-3 formatting

Import ns-3 formatting

This section shows how to configure the main ns-3 formatting rules within Eclipse. This is not intended replace the check-style.py tool, but rather reduce the number of changes the latter has to make.

  • Save the xml code below in a xml file
  • Select "C/C++ General"/"Formatter" menu the Project properties
  • Enable project specific settings
  • Import the previously saved file and apply modifications.

XML formatting to copy

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<profiles version="1">

<profile kind="CodeFormatterProfile" name="ns-3" version="1">

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_body" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression" value="34"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_empty_lines" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_binary_operator" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_binary_expression" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="next_line_shifted"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces" value="0"/>

<setting id="org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block" value="next_line_shifted"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration" value="82"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_member_access" value="0"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration" value="end_of_line"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.lineSplit" value="90"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_compact_if" value="16"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_declarator_list" value="16"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>

<setting id="org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment" value="1"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list" value="83"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block_in_case" value="next_line_shifted"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.compact_else_if" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_block" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.tabulation.char" value="space"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_binary_operator" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.continuation_indentation" value="2"/>

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.indentation.size" value="2"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_expression_list" value="0"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header" value="false"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.join_wrapped_lines" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_assignment" value="0"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters" value="do not insert"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>

<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier" value="true"/>

<setting id="org.eclipse.cdt.core.formatter.alignment_for_enumerator_list" value="49"/>

<setting id="org.eclipse.cdt.core.formatter.tabulation.size" value="2"/>

<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>

</profile>

</profiles>


Configure To Run From Eclipse

Reproduced from Mihal Brumbulli's notes

Several readers note they use the second method.

Configure External Runner

Run External, main tab
  1. Add an external builder (Run->External Tools->External Tools Configuration) and add a new Program. Then you can configure it:
    • Location = your waf location (i.e. /home/x/workspace/ns-3-dev/waf)
    • Working Directory = your ns3 directory (i.e. /home/x/workspace/ns-3-dev/)
    • Arguments = --run "${string_prompt}"
    Then you can run your program (with arguments) with the new created external builder.


Configure Runner

Run Configuration, main tab
Run Configuration, libraries tab
Run Configuration, environment tab
  1. You can run any binary generated directly as a C++ Application (normal run command).
    • Run -> Run Configuration
    • Add a new C/C++ Application
    • Name = application name
    • On the Main tab:
      • Project = your project, or click on Browse to select from the available projects
      • C/C++ Application: click Browse to find it in the build tree
    • On the Environment tab, create the LD_LIBRARY_PATH variable as above
    • On the Debugger tab, Shared Library tab, Add the build/debug directory, so all the libraries can be loaded.

--Pdbarnes 19:23, 17 June 2011 (EDT)

Miscellaneous tips

Adding libxml2 include paths and symbols

This tip is for Ubuntu Linux distributions. The paths might be different for other distributions.

  • In a terminal write the following: pkg-config --cflags libxml-2.0
  • Copy the output. (For example: -I/usr/include/libxml2 )
  • Right-click your CDT project and select 'Properties'.
  • Expand 'C/C++ General' and select 'Paths and Symbols'.
  • Select 'GNU C++' under Languages
  • Click 'Add' to define new element
  • Write in the Directory field what was the output of the pkg-config command without the -I prefix i.e: /usr/include/libxml2
  • Re-build the ns-3 project.

--Nicholas Loulloudes 03:16, 30 December 2011 (EST)

Clearing Eclipse errors

This tip has been suggested on the user forum. It aims at clearing errors reported by Eclipse even though the project builds and runs correctly (according to waf).

  • Right-click your CDT project and select 'Properties'.
  • Expand 'C/C++ General' and select 'Paths and Symbols'.
  • Select 'GNU C++' under Languages
  • Click 'Add' to define new element
  • Browse the 'Workspace...' and select the build directory of your CDT project (it should be recognized as a workspace path)
  • Re-build the ns-3 project
  • Re-build the index of the project (by right-clicking your CDT project and selecting 'Index' then 'Rebuild').

If errors are still displayed in the project directory tree, open the concerned files to clear them.

Another means of clearing errors is configuring the C++ standard GCC uses to C++14 (or C++11 at least), by following the steps in the screenshot.

Builder Settings Screenshot