boostorg / boostorg/build

Missing <arch-and-model> if using msvc

Open
#730 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
251
Forks
63
PR merge metrics
No merged PRs in 30d

Description

I use b2 to compile a simple example, and got an error with msvc/Windows:

```
$ b2
...patience...
...found 817 targets...
...updating 1 target...
msvc.link bin\msvc-14.2\release\cxxstd-latest-iso\threading-multi\test_boost.exe
LINK : fatal error LNK1181: cannot open input file 'boost_program_options-vc142-mt-1_76.lib'

call "bin\standalone\msvc\msvc-14.2\msvc-setup.bat" >nul
link /NOLOGO /INCREMENTAL:NO "bin\msvc-14.2\release\cxxstd-latest-iso\threading-multi\main.obj" "boost_program_options-vc142-mt-1_76.lib" /MACHINE:X64 /MANIFEST:EMBED /subsystem:console /out:"bin\msvc-14.2\release\cxxstd-latest-iso\threading-multi\test_boost.exe" /LIBPATH:"C:\dev\lib"

...failed msvc.link bin\msvc-14.2\release\cxxstd-latest-iso\threading-multi\test_boost.exe...
...failed updating 1 target...
```

The file `boost_program_options-vc142-mt-1_76.lib` should be `boost_program_options-vc142-mt-x64-1_76.lib`.

https://github.com/boostorg/build/blob/d52f1993d906aa3fd3649a8dd5134402794bf86e/src/contrib/boost.jam#L306

After looking up `boost.jam`, I think on Windows this should be:

```
rule tag_versioned ( name : type ? : property-set )
{
return [ common.format-name
-$(.version_tag) -$(.build_id) : $(name) : $(type) : $(property-set) ] ;
}
```

After adding , `b2 architecture=x86 address-model=64` succeeded.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.