Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No usable IPDB/IOBJ from previous compilation was found

Tags:

c++

c

visual-c++

Project structure are as follows. (Visual Studio 2015 Community)

One static library project One Console Application project

static library is created using default settings and linked to console application project. Program is working fine. But in release build of console application linked with static library following information is displayed.

All 205 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.

Finished generating code

========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

is there any problem while generating release static library using default options.

cannot understand why there is not ipdb/iobj files in static library build directories. Whereas there are ipdb/iobj files in console application build directories.

Every project(static/console app) are build with default settings.

static libs are in C and console application is in C++

In debug build no such information is show.

like image 570
Rahul Avatar asked Nov 21 '16 12:11

Rahul


2 Answers

Same Problem as above Project structure follows. (Visual Studio 2017 v15.6.6 Community)

One library project One Windows Application project

Library is created using default settings and linked to windows application project. Program is working fine. But in release build of the library produces the same error as above.

The first answer above is correct. The way to fix this is Visual Studio is to look at the library build options and change the linker options.

Linker --> Optimization --> Use Fast Link Time Code Generation (/LTCG:incremental)

Remove the incremental in the linker options

Linker --> Optimization --> Use Fast Link Time Code Generation (/LTCG)

like image 115
Robert Booth Avatar answered Oct 19 '22 23:10

Robert Booth


It is not related to static library builds. Only executable builds have the LTCG:incremental option available. When building Console/Windows application there is no ipdb/iobj files so the information is displayed. After first build ipdb/iobj files are created. So no more info after that until rebuild is called. It is only information that LTCG with incremental option is enabled.

like image 30
Rahul Avatar answered Oct 20 '22 01:10

Rahul