visual studio in remote Linux compile and link , with several archives (static libs)

  • Thread starter Thread starter karasindo
  • Start date Start date
K

karasindo

Guest
Hi

I am having this issue (can't copy code/build/link reports, the code is not available)

1) using VS solution with 3 projects: projA - static lib, projB - static lib, projC - executable.out

2) projects can be config for win_debug or linux_debug

under Linux debug

3) projA , upload code to remote Linux computer and compile to libA.a

checked all *.o are in archive libA.a , all functions are inside each *.o ( also Cfun::fun() )

4) projB , upload code to remote Linux computer and compile to libB.a (libB.a has reference to libA.a)

checked all *.o are in archive libB.a, all functions are inside each *.o

5) projC , upload code to remote Linux computer ,compile and than linker FAIL with libB unreference in function Bfun calling Cfun::fun() ( which is part of libA.a)

more about the error

- Cfun::fun() can be found at libA.a at Cfun.o, so it is there

by going to libA.a -> extracting out Cfun.o and running command nm

- opening some flags (trace,map) for more info in compile I can see that when projC try to link libA it does not extract all the *.o ( include the one I get error from Cfun.o), but again Cfun.o is in the static lib

- libB extract with all it's *.o

- way? is this the problem I have, the linker is not extracting all the *.o


other data , way not be relevant

- did not managed by using the project config GUI flags, setting for using both libA and libB in compile projC, all the -L was (in any combination) after the -l

flags : Additional Library Directories, Library Dependencies, more compile options

- finally "Additional Dependencies" with full path and lib name

"home/user/projA/lib/x64/Linux_debug/libA.a", "home/user/projB/lib/x64/Linux_debug/libB.a"

worked

thanks

Continue reading...
 
Back
Top