Can anyone let me know if I can run C++ code alone in the ADMB IDE or is the IDE more specific to ADMB applications? The reason that I ask is that I am new of ADMB and would like to use the IDE but also have separate C++ code projects.
The answer is yes. Inside ADMB-IDE is the Emacs editor, and you can
definitely use Emacs to work with C++. ADMB-IDE also comes with the GCC
compiler for C++ and the GDB debugger, so in a way you're all set.
Emacs is a powerful editor, but the default settings are silly. You can
configure it extensively, but here's how it works out of the box:
Start ADMB-IDE and open an existing hello.cpp. Notice that the mode line
near the bottom of the frame says (C++/l Abbrev), and the code is shown
using helpful colors.
Now run M-x compile [RET] (that's Alt-x compile enter). Emacs guesses that
you want to run
but delete that and type
g++ -static -o hello hello.cpp
or if you're a fast typist
g++ -s -static -Wall -o hello hello.cpp
and press enter.
The hello(.exe) executable is now ready. To run the executable from within
Emacs, do M-! hello [RET] (that's Alt-Shift-1 hello enter). The minibuffer
at the bottom of the frame should say "Hello world" if that's what the
hello.cpp program is supposed to do.
Could that be any clunkier? The good news is that you can configure Emacs
to be exceedingly smooth and efficient. As a trivial example, you could
configure a personal "C++ hook" that lets f9 compile and f10 run the C++
program that you have open.
You see, in each mode, be it ADMB, C++, or something else, Emacs looks for
your personal settings in so-called hooks. You can study a few hooks in
the .emacs file that comes with ADMB-IDE, and then study some more
This takes years to learn, but it's a rewarding journey if you edit text
files every day and enjoy tinkering. Emacs has modes for all major
programming languages, sometimes with quite sophisticated tools, and you
can use the same working environment in all operating systems. But I
should also point out that there are many C++ IDEs that are more
Users mailing list
I bring this up because if you get into the practice of configuring the
ADMB-IDE to speed it's use with C++ in general (which will not be hard),
you should not be daunted by the array of information on the web that
may seem confusing in comparison to the ease of using the program as
configured. And when in doubt, ask Arni--it turns the sun will set in
Iceland tonight, but not until after midnight.
Arni - just a curiosity
Looking through the IDE files from the google code source files, I notice that the associated compilers (in the gnu/gcc400) folder are 32 bit. Is there a plan afoot to enable builds using the MinGW-w64 version?
Even though my trusty WinXP wouldn't run any of it, I could release a
64-bit ADMB-IDE, in both zip and exe format.
The first step would be to find mingw64. At first glance, it looks like
two websites offer a variety of mingw64, but I'm not in a position to test
which one works:
Some of those archives seem large and may contain unnecessary components.
I've tried to make ADMB-IDE as small as possible, not including Fortran or
The next step would be to build ADMB for 64-bit Windows. Based on
someone's success with the first step above, Johnoel could probably roll
out admb-9.1-windows-mingw-gcc4.4-64bit in both zip and exe format.
This would probably be worthwhile, mainly for people with 4+ GB of RAM and
models requiring the same. Based on various benchmarks, I don't expect
going from 32 to 64 bits will result in much speed improvement, but who
knows. But when it comes to such heavy models, the expected 60%
performance gain by running in Linux rather than Windows is worth
considering. You could still do everything else in Windows, like preparing
the model input, analyzing the output, writing up, etc.