Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-02-25 11:27:21

Vladimir Prus <ghost_at_[hidden]> writes:

> David Abrahams wrote:
>> OK, I made some progress with the limited " msvc" (no
>> version). Now it fails here. I'm a bit stumped now; not quite sure
>> what this is supposed to be doing or why it's failing.
> a.obj : error LNK2001: unresolved external symbol "void __cdecl z2(void)"
> (?z2@@YAXXZ)
> a.obj : error LNK2001: unresolved external symbol "void __cdecl z1(void)"
> (?z1@@YAXXZ)
> a.obj : error LNK2001: unresolved external symbol "int __cdecl bar(void)"
> (?bar@@YAHXZ)
> bin\msvc\debug\a.exe : fatal error LNK1120: 3 unresolved externals
> Microsoft (R) Incremental Linker Version 6.00.8447
> Considering the first two functions: They are declared in z.cpp depending on
> value of the SELECT macros. The idea is that z.cpp should be compiled two
> times: once with SELECT equal to 1 and then with SELECT equal to 2. These
> compilations should define z1 and z2 respectively.
> The most likely problem is that obj_1 and obj_2 main targets are not linked to
> a.exe.

That's very true; that is what's (not) happening. But how do we get
it to start happening?

> You might want to use PRESEVE to get the state of testing directory,
> copy that to tools/build/test and run bjam manually to see what
> happens.

I tried that but it didn't tell me anything interesting. obj_1.obj
and obj_2.obj are not written into the linker response file.

> Try also
> bjam msvc obj_1

Works just fine:

msvc.compile bin\msvc\debug\main-target-obj_1\obj_1.obj
...updated 1 target...

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at