- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi!
Try to compile your project, but Intel C++ Compiler 13.1 shows an error:
ipo: error #11063: ipp_DFT.o : Amplitude(Ipp64fc&, double&, double)(_Z9AmplitudeR7Ipp64fcRdd) already defined in main.o
icpc: error #10014: problem during multi-file optimization compilation (code 1)
Without -ipo flag:
ipp_DFT.o: In function `Amplitude(Ipp64fc&, double&, double)':
/home/Jam/build-FFT_filter-Linux_QT_5_0_2_LinuxICC_64bit-Debug/../../FFT_filter/ipp_tbb.h:20: multiple definition of `Amplitude(Ipp64fc&, double&, double)'
main.o:/home/Jam/build-FFT_filter-Linux_QT_5_0_2_LinuxICC_64bit-Debug/../../FFT_filter/ipp_tbb.h:20: first defined here
make: *** [FFT_filter] Error 1
What could be the problem?
Tried to use the flag -ip, but to no avail.
Tech info:
icpc version 13.1.1 (gcc version 4.6.0 compatibility);
flags: -O3 -ipo -use-intel-optimized-headers -xCORE-AVX-I -axCORE-AVX-I -openmp -restrict -std=c++11
Thanks!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As I wild guess, I wonder why you specify CORE-AVX-I twice. It seems you are asking for run-time detection of "IVB" corei7-3 and to default to the same if it isn't present (but possibly with the order of options backwards). If CORE_AVX-I does anything more than plain AVX, it would only to be to enable the special intrinsics (AES). -xAVX or -mAVX would be more straightforward. If you wanted a dual path build for AVX and SSE4.1, I believe it would be -axAVX -xSSE4.1 As Sergey said, we would need a reproducer.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi!
Thanks for the reply. Sorry for the "Tried to build your project," it's a typo.
The situation is the following, I'm trying to apply a function of the Intel TBB library, but the compiler complains about multiple definitions. After going through all the choices I have made to the code to compile.
Below I have attached the two working version and a version that does not work. As an example, bring the code of page http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/tbb_userguide/parallel_for.htm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I want to understand why there is an error of multiple definitions. And just want to inform about the error, all of a sudden it's another bug in the compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I want to understand why the compiler generates an error # 10014.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hmm, I thought that all cleaned up makefile from a double including the header file. But I have the following situation, there is a project on work, at QtLibraries, and no makefile any mention of the inclusion of header files twice. I'll have another look at my makefile project Qt. But anyway thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your makefile in the "..broken.." directory is defective. A header file is usually not a separately compilable unit by itself, since in normal usage the contents of the header files are merged into the rest of the C/C++ source by the preprocessor before being handed to the compiler pass. Secondly, the conventions of the compiler driver (on most OSes) are that a file with an extension other than '.c' or '.cpp' is not a source file and is passed as-is to the linker. The linker, in turn, does not know what to do with a header file.
In such situations, the -n option of the make program is quite useful. Look at the output of make -n on your makefile. Do the resulting commands look sensible? If not, fix the makefile.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page