Sponsored Content
Top Forums Programming Using boost in program created by g++ Post 302749169 by DGPickett on Thursday 27th of December 2012 05:01:00 PM
Old 12-27-2012
Some prefer to do it in two lines, one for .cc.o and one for .o.exe or whatever, so the first also supports code going into libraries, and there is just one place for those options in make definitions.

I usually see the compiler options, -D's, -I's (preprocess is before compile, is before link), the -L right before the -l's it supports, -l's for each linked library and source or local object at the right end. I like to use dynamic linking, so no -L's, just a good LD_LIBRARY_PATH (or whatever your system likes to use, see man ld() for rules).

Sometimes I would -c compile all the .c or .cc into .o and ar them all into one library .a file, as order does not matter within a library, and finally compile with the .a file explicitly only. Only good for one main()! One best practice says put only one subroutine/function in each source file, and then the order is tricky. You can have one .a for each main() and it's "private" functions/methods/subroutines, and then link in any common code libraries.

The -I path must support the entry name or relative path in the source #include's (-I/a/b/c and #include "d/e.h" is for /a/b/c/d/e.h).

Last edited by DGPickett; 12-27-2012 at 06:07 PM..
 

7 More Discussions You Might Find Interesting

1. Linux

How do I boost the Linux performace

Hi All, I installed Linux recently on my PC and finding it difficult to boost its performance. It takes hell lot of time to open Mozilla, text pad , & even the booting process is too slow, many a times I got to manually power off to shutdown the computer. I will be glad if you could help me... (18 Replies)
Discussion started by: jayfriend
18 Replies

2. Solaris

Sun Studio 10 + Boost 1.36

Is it possible to build Boost 1.35 using Sun Studio 10? I can build Boost 1.35 using Sun Studio 11 successful. However, i'm unable to build it using Sun Studio 10 using the exact method. I really apprecaite if any expert can help on this. Thanks, (2 Replies)
Discussion started by: shingpui
2 Replies

3. Solaris

boost thread not accessible to boost::move error

Hi All I am working unders Sun Solaris and I am not "/opt/boost/boost/thread/detail/thread.hpp", line 344: Error: boost::thread::thread(boost::thread&) is not accessible from boost::move(boost::detail::thread_move_t<boost::thread>). Do you know if there are other solutions other than... (2 Replies)
Discussion started by: manustone
2 Replies

4. Programming

Boost C++ ASIO Networking

Hi, Based on the following example in the Boost C++ website: www. boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp]doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp I tried to create a similar TCP server that waits to accept a client connection... (0 Replies)
Discussion started by: tanlccc
0 Replies

5. Solaris

how to install boost 1_49_0 in solaris

hi guys, i downloaded boost1_49_0 tar.gz... then unzip and untar... how to install boost 1_49_0 in solaris plz help me (1 Reply)
Discussion started by: coolboys
1 Replies

6. UNIX for Dummies Questions & Answers

How do I declare boost?

Hello all, I am trying to "make" a database system, VDB (Veritas Data Base), and when I run "make" I receive the following error: VDBException.h:19: error: expected `)' before '*' token VDBException.h:20: error: expected `)' before '*' token VDBException.h:43: error: expected `)' before '*'... (4 Replies)
Discussion started by: Tyler_92
4 Replies

7. Programming

Boost.Test and CMake

Hi, I just started using CMake and the Boost Libraries. In this progress I encountered some problems. One of these problems is combining Boost unit tests with cmake. I don't know how to set the whole project up. I tried to set up a simple test project. This contains a main.cpp a comp.cpp and the... (0 Replies)
Discussion started by: ElCoyote
0 Replies
mpif90(1)								MPI								 mpif90(1)

NAME
mpif90 - Compiles and links MPI programs written in Fortran 90 DESCRIPTION
This command can be used to compile and link MPI programs written in Fortran. It provides the options and any special libraries that are needed to compile and link MPI programs. It is important to use this command, particularly when linking programs, as it provides the necessary libraries. COMMAND LINE ARGUMENTS
-show - Show the commands that would be used without runnning them -help - Give short help -f90=name - Use compiler name instead of the default choice. Use this only if the compiler is compatible with the MPICH library (see below) -config=name - Load a configuration file for a particular compiler. This allows a single mpif90 command to be used with multiple compilers. -compile_info - Show the steps for compiling a program. This option can be used to see what options and include paths are used by mpif90. -link_info - Show the steps for linking a program. This optoin can be used to see what options and libraries are used by mpif90. -profile=name - Use the MPI profiling given by name. See below for details -mpe=name - Use an MPE profiling library. The behavior is similar to using -profile=mpe_name.conf . -echo - Show exactly what this program is doing. This option should normally not be used. others - are passed to the compiler or linker. For example, -c causes files to be compiled, -g selects compilation with debugging on most systems, and -o name causes linking with the output executable given the name name . ENVIRONMENT VARIABLES
The environment variables MPICH_F90 may be used to select different Fortran compiler and linker. Note that since MPICH is built with a particular C and Fortran compiler, change the compilers used can cause problems. Use this only if you could intermix code compiled with the different compilers. COMPATIBLE COMPILERS
The MPI library may be used with any compiler that uses the same lengths for basic data objects (such as long double ) and that uses com- patible run-time libraries. On many systems, the various compilers are compatible and may be used interchangably. There are exceptions; if you use the MPICH_F90 environment variable or the -f90=name command-line argument to override the choice of compiler and encounter prob- lems, try reconfiguring MPICH2 with the new compiler and installing MPICH2 in a separate location. See the installation manual for more details. EXAMPLES
To compile a single file foo.f , use mpif90 -c foo.f To link the output and make an executable, use mpif90 -o foo foo.o Combining compilation and linking in a single command mpif90 -o foo foo.f is a convenient way to build simple programs. SELECTING A PROFILING LIBRARY
The -profile=name argument allows you to specify an MPI profiling library to be used. name can have two forms: A library in the same directory as the MPI library The name of a profile configuration file If name is a library, then this library is included before the MPI library. This allows the simple use of libraries that make use of the MPI profiling interface and that are installed in the same directory as the MPI library. If name.conf is the name of a file in the sysconfdir directory, then this is read and may define the following variables: PROFILE_PRELIB - Libraries (and paths) to include before the MPI library PROFILE_POSTLIB - Libraries to include after the MPI library PROFILE_INCPATHS - C preprocessor arguments for any include files For example, to add /usr/local/myprof/include to the include path and the library libmyprof.a in /usr/local/myprof/lib to the link step, you could create the file myprof.conf with the lines PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof" PROFILE_INCPATHS="-I/usr/local/myprof/include" and place it in the sysconfdir directory (this directory is set at configure time when MPICH is built). Then using the command-line argument -profile=myprof will cause these definitions to be added to the relevant compile commands. SEE ALSO
mpicc, mpicxx, mpif90, mpiexec LOCATION
mpif90.txt 11/2/2007 mpif90(1)
All times are GMT -4. The time now is 07:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy