Opened 12 years ago

Closed 11 years ago

#1 closed defect (fixed)

Linkng problem

Reported by: bss Owned by: pbelotti
Priority: major Milestone:
Component: component1 Version:
Keywords: Cc:

Description (last modified by pbelotti)

Hi, I am trying to use COIN-OR with Couenne from an external application. I have configured, built and installed COIN-OR according to the instructions, and all that was reported as successful. However, when I invoke my external application, I get the following:

(E) Failed to load 'libMyApp.so'. /home/bss/COIN_OS/lib/libCouenne.so.0: undefined symbol: negInfinity

Could you help me resolve that?

Thanks, Beata

Attachments (1)

config.log (28.0 KB) - added by bss 12 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 in reply to: ↑ description Changed 12 years ago by pbelotti

  • Description modified (diff)
  • Owner changed from somebody to pbelotti
  • Status changed from new to assigned

Hi Beata,

negInfinity is *declared* as an extern variable in asl.h, one of the include files for the Ampl Solver Library (ASL) used throughout Couenne. That variable is *defined* in mach.c, again from the ASL library. It should be available in amplsolver.a. See ThirdParty??/ASL and documentation therein. In principle, if the ASL library is linked with Couenne, all should be OK. Can you tell something more about the system where you have installed Couenne?

Thanks, Pietro

Replying to bss:

Hi, I am trying to use COIN-OR with Couenne from an external application. I have configured, built and installed COIN-OR according to the instructions, and all that was reported as successful. However, when I invoke my external application, I get the following:

(E) Failed to load 'libMyApp.so'. /home/bss/COIN_OS/lib/libCouenne.so.0: undefined symbol: negInfinity

Could you help me resolve that?

Thanks, Beata

Changed 12 years ago by bss

comment:2 follow-up: Changed 12 years ago by bss

Hi Pietro,

the ASL libraries seem to be included as needed, yet the problem persists. I am working on Ubuntu Hardy. I have attached config.log with more details for your information.

Thanks, Beata

comment:3 in reply to: ↑ 2 ; follow-up: Changed 12 years ago by pbelotti

Hi Beata,

now that I look at it more carefully, libCouenne shouldn't even have that symbol (negInfinity) as it doesn't use the ASL. However, if you do use the ASL, then that symbol is defined, and it should be found by the linker. It might be that you just need to re-order the libraries you use (the ASL and libCouenne) to build libMyApp. On my side, I'll try to see if I can remove that symbol from libCouenne, but any change would be reflected in a stable version of Couenne, not the release (0.2.1?) you seem to have.

Cheers, Pietro

Replying to bss:

Hi Pietro,

the ASL libraries seem to be included as needed, yet the problem persists. I am working on Ubuntu Hardy. I have attached config.log with more details for your information.

Thanks, Beata

comment:4 in reply to: ↑ 3 Changed 12 years ago by pbelotti

  • Description modified (diff)

Hi again Beata,

negInfinity is referenced within some of the files in the Couenne/readnl/ directory, which are included in the sub-library libCouenneProblem of the libCouenne library you link to. If you don't use the ASL, you should re-configure Couenne with option --without-ASL, so that there won't be an undefined "negInfinity" symbol. However, if you do use the ASL for your application, then the amplsolver.a library has to be linked, and then, as I mentioned previously, it may be a matter of linking order for your application.

Let me know if this helps.

Cheers, Pietro

PS Sorry for the previous two messages, I just wanted to put my first reply in the right place instead of the problem description.

Replying to pbelotti:

Hi Beata,

now that I look at it more carefully, libCouenne shouldn't even have that symbol (negInfinity) as it doesn't use the ASL. However, if you do use the ASL, then that symbol is defined, and it should be found by the linker. It might be that you just need to re-order the libraries you use (the ASL and libCouenne) to build libMyApp. On my side, I'll try to see if I can remove that symbol from libCouenne, but any change would be reflected in a stable version of Couenne, not the release (0.2.1?) you seem to have.

Cheers, Pietro

Replying to bss:

Hi Pietro,

the ASL libraries seem to be included as needed, yet the problem persists. I am working on Ubuntu Hardy. I have attached config.log with more details for your information.

Thanks, Beata

comment:5 Changed 11 years ago by pbelotti

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.