Sponsored Content
Full Discussion: Makefile Mix for C and C++
Top Forums Shell Programming and Scripting Makefile Mix for C and C++ Post 302703905 by hfbrando on Thursday 20th of September 2012 02:05:24 PM
Old 09-20-2012
Thank you DGPickett for your answer.
I've been looking for the use of extern in ANSI C, and I tried several ways to code it:
Code:
extern "C++" {
      #include <opencv2/features2d/features2d.hpp>
}

But it didn't work (the compiler threw errors because of the quotation marks or the braces... I changed them by parenthesis and simple quotation marks, but It didn't work. After I found a post (*) that say that C does not define linkage to any other language (but C++ does).
So I tried with extern "C" in the c++ library, but when I compiled it threw the same compilation error...

ardrone_testing_tool.c: (.text+0x1212) : undefined reference to `cvSURFParams'
ardrone_testing_tool.c: (.text+0x126f) : undefined reference to `cvExtractSURF'


In that link, they say also that I could try with the compiler g++ (I should fix the errors I put in the last post).
What do you think about that?

Concerning the compiler, you mean to take out '.cpp' in INTERNAL_SOURCE_EXTENSIONS, and after put the .hpp file in a separated folder and call the g++ just for that folder and generate the .o ?
How can I put all the .o files all together ?

Is it OK what I'm saying? Sorry if I'm saying something that is wrong, I started just some days ago with the GNU makefile.

Thanks a lot.

(*) The forum does not allow to put links before 5 posts. Write on google "linking a C++ library to a C program" bytes
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to grep mix of numbers and systemdate?

Hi Guys, i'm beginner in UNIX commands, need some help on this simple question: I need to make a shell script to move files to another directory, the criterias are : 1. the range of 4 last digit of the file name is 0100-0199 2. move all files that processed daily (let's say today is... (2 Replies)
Discussion started by: saltshaker
2 Replies

2. AIX

mix fc and tape devices

I have a problem with some partitions. In one of them I have this two fiber channel. lsdev -Cc adapter ent0 Available 03-08 10/100/1000 Base-TX PCI-X Adapter (14106902) fcs0 Available 04-08 FC Adapter fcs1 Available 05-08 FC Adapter ide0 Defined 07-08 ATA/IDE... (0 Replies)
Discussion started by: lo-lp-kl
0 Replies

3. UNIX for Advanced & Expert Users

Makefile problem - How to run module load in a Makefile

Hi, I'm trying to run the module load command in a Makefile and i'm getting the following error: make: module: command not found Why is this? Is there any way to run this command in a Makefile? NOTE: command - module load msjava/sunjdk/1.5.0 works fine outside of the Makefile (2 Replies)
Discussion started by: hernandinho
2 Replies

4. Solaris

ZFS Pool Mix-up

Hi all I plan to install Solaris 10U6 on some SPARC server using ZFS as root pool, whereas I would like to keep the current setup done by VxVM: - 2 internal disks: c0t0d0 and c0t1d0 - bootable root-volume (mirrored, both disks) - 1 non-mirrored swap slice - 1 non-mirrored slices for Live... (1 Reply)
Discussion started by: blicki
1 Replies

5. Shell Programming and Scripting

How to mix the contents of 2 files into a new file?

Hello Everybody! My question is how can I mix for example file_a with file_b in the following method: After 2 lines of file_a put 2 lines from file_b to file_c. For example: file_a: 1 2 3 4 5 6 file_b: 11 22 (7 Replies)
Discussion started by: Levi85
7 Replies

6. Homework & Coursework Questions

Help with Simple Multi-Level Makefile (Extremely New at Makefile)

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Basically, the prompt is make a makefile with various sub makefiles in their respective subdirectories. All code... (1 Reply)
Discussion started by: Tatl
1 Replies

7. Programming

makefile for mix of C and C++ modules

I am trying to come up with a makefile where the target is linked with object files produced by C and C++ sources. My setup is Ubuntu/gcc: $ uname -a Linux srvr1 2.6.24-24-server #1 SMP Fri Sep 18 17:24:10 UTC 2009 i686 GNU/Linux gcc version 4.2.4 $ cat main.cpp #include <iostream>... (6 Replies)
Discussion started by: migurus
6 Replies

8. AIX

Mix LDAP and LOCAL user on AIX

Hello, I'm currently trying to mix local and LDAP users on an AIX 7.1. I've triied many things. My LDAP Server in on a CentOS - OpenLDAP (which works fine with linux). I'm currently stuck on AIX at how to declare LDAP AND Local users. Here's what i did : /usr/sbin/mksecldap -c -h 'ldap03'... (15 Replies)
Discussion started by: AIX_user_324891
15 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 08:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy