Buidling boost error: Name clash for '<pstage\\lib>boost_system-vc120-mt-1_58.dll'

天大地大妈咪最大 提交于 2019-11-29 07:48:45

builds if I add --without-context --without-coroutine to b2 options

Ludek Vodicka

Did you get boost from git repository?

If so, I think the latest version available in git is broken. Today I tried to compile it too and if you would solve errors you mentioned, you will get another errors because of incomplete files in destination directories (boost ptr_container library isn't installed after compilation from source)

The solution was download latest boost version from their site (http://sourceforge.net/projects/boost/files/boost/1.57.0/). After that, compilation and installation works correctly

From the Boost 1.58 beta release notes:

Important Note

There is a bug with the build scripts; you have to specify the address-mode and architecture to b2. I used:

./b2 address-model=64 architecture=x86

to test this.

Adding these flags to the b2 command solves the problem without having to exclude the context and coroutine libraries (handy if, say, you actually use these libraries, like I do!).

Naturally, if you're building 32-bit libraries, you want to add address-model=32 instead.

Maybe you have two version of g++ available in $PATH. Try running where g++. If you see two g++ then remove one from $PATH. And then start over all the build process again. That worked for me and

In my case I was using variant=release,debug command line argument, which was causing name collision.

I've added extra argument --layout=tagged and problem disappeared.

See also https://stackoverflow.com/a/55214183/2338477

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!