ag++ [options] [files...]
g++ -c main.cc
ag++ -c main.cc
| Option | AC++ | Description
|
| --gen_config | – | Only generate Puma configuration file
|
| --weave_only | – | Weave only
|
| -c | ! | Compile only
|
| --keep_woven | – | Keep woven source code files
|
| --c_compiler <arg> | – | Path to C++ compiler
|
| --ac_compiler <arg> | – | Path to AspectC++ compiler
|
| --config_command <arg> | – | Specify command which prints information about compiler
|
| --Xcompiler | – | In case of doupt account following options as g++ options.
|
| --Xweaver | – | In case of doupt account following options as ac++ options.
|
| --deps <arg> | – | Path to an aspect dependency file (combine with -M...)
|
| -p|--path <arg> | ! | Defines a project directory
|
| -d|--dest <arg> | X | Specifies a target directory for saving
|
| -v|--verbose <arg> | ! | Level of verbosity (0-9)
|
| -o|--output <arg> | X | Name of the output file
|
| --include_files | X | Generate manipulated header files (short version -i is not supported)
|
| -a|--aspect_header <arg> | ! | Name of aspect header file or 0
|
| -r|--repository <arg> | X | Name of the project repository
|
| --expr <arg> | X | Pointcut expression to match in repository
|
| --config <arg> | ! | Parser configuration file
|
| --no_line | X | Disable generation of #line directives
|
| -k|--keywords | X | Allow AspectC++ keywords in normal project files
|
| --real-instances | X | Let ac++ perform a full template analysis
|
| --problem... | X | Enable back-end compiler problem workaround
|
| --no_problem... | X | Disable back-end compiler problem workaround
|
| --warn... | X | Show a specific ac++ warning that is suppressed by default
|
| --no_warn... | X | Suppress a specific ac++ warning
|
| -I <arg> | X | Include file search path
|
| -D <name>[=<value>] | X | Macro definitions
|
| -U <name> | X | Undefine a macro
|
| --include <arg> | X | Forced include
|
# Example aspect dependency rules "A1.ah" => "C.*" "D.ah" =>"/rootdir/**/dir/*.c++" # abc "deptest/?la.ah" => "y.c*" "dep*/b*.ah" => "x.h" "Slice*.ah" => ""
| Symbol | Meaning |
| * | 0 or more arbitrary characters in a path element |
| ? | 1 arbitrary character in a path element |
| **/ | 0 or more arbitrary directory names |
#line 6 "examples/helloworld/hello.h"
#line 6 "examples/helloworld/hello.h"
void hello()
#line 234 "main.acc"
{
typedef TJP__Z5hellov_1< void, void, void, void (), AC::TLE > __TJP;
__TJP tjp;
tjp._result = 0;
AC::invoke_CSVProfiler_GenericProfiler__a0_around<__TJP> (&tjp);
}
__attribute__((always_inline)) inline void __exec_old_hello()
#line 6 "examples/helloworld/hello.h"
#line 6 "examples/helloworld/hello.h"
{
std::cout << "Hello" << std::endl;
}
--size-type "long unsigned int" -D "__SIZE_WIDTH__=64" -D "__SSE2_MATH__=1" -D "__SSE2__=1" -D "__SSE_MATH__=1" -D "__SSE__=1" -D "__SSP_STRONG__=3" -D "__STDCPP_DEFAULT_NEW_ALIGNMENT__=16" -D "__STDCPP_THREADS__=1" -D "__STDC_HOSTED__=1" -D "__STDC_IEC_559_COMPLEX__=1" -D "__STDC_IEC_559__=1" -D "__STDC_IEC_60559_BFP__=201404L" -D "__STDC_IEC_60559_COMPLEX__=201404L" -D "__STDC_ISO_10646__=201706L" -D "__STDC_UTF_16__=1" -D "__STDC_UTF_32__=1" -D "__STDC__=1" -D "__UINT16_C(c)=c" -D "__UINT16_MAX__=0xffff" -D "__UINT16_TYPE__=short unsigned int" -D "__UINT32_C(c)=c ## U" -D "__UINT32_MAX__=0xffffffffU" -D "__UINT32_TYPE__=unsigned int" -D "__UINT64_C(c)=c ## UL" -D "__UINT64_MAX__=0xffffffffffffffffUL" -D "__UINT64_TYPE__=long unsigned int" -D "__UINT8_C(c)=c" -D "__UINT8_MAX__=0xff" -D "__UINT8_TYPE__=unsigned char" -D "__UINTMAX_C(c)=c ## UL"
-D "__cpp_template_auto=201606L" -D "__cpp_template_template_args=201611L" -D "__cpp_threadsafe_static_init=200806L" -D "__cpp_unicode_characters=201411L" -D "__cpp_unicode_literals=200710L" -D "__cpp_user_defined_literals=200809L" -D "__cpp_variable_templates=201304L" -D "__cpp_variadic_templates=200704L" -D "__cpp_variadic_using=201611L" -D "__gnu_linux__=1" -D "__k8=1" -D "__k8__=1" -D "__linux=1" -D "__linux__=1" -D "__pic__=2" -D "__pie__=2" -D "__unix=1" -D "__unix__=1" -D "__x86_64=1" -D "__x86_64__=1" -D "linux=1" -D "unix=1" --target x86_64-linux-gnu --gnu 13.3.0 --isystem "/usr/include/c++/13" --isystem "/usr/include/x86_64-linux-gnu/c++/13" --isystem "/usr/include/c++/13/backward" --isystem "/usr/lib/gcc/x86_64-linux-gnu/13/include" --isystem "/usr/local/include" --isystem "/usr/include/x86_64-linux-gnu" --isystem "/usr/include"
ag++ --c_compiler arm-none-eabi-g++ example.cpp
clang -print-targets
ag++ --c_compiler arm-none-eabi-g++ \ --Xcompiler -specs=nosys.specs example.cpp