Closed kennethsdavis closed 7 months ago
I don't know what the solutions are to the 7.38.1 errors. If the symbols are removed from either libbg-static or libbv-static, then other targets fail to build.
I applied your patch and also fixed a couple missed function name adjustments (commit 03ffae5bfd) - for the vlist.obj problem, can you provide a couple examples of the errors you're seeing?
@starseeker, I rebased my main branch, but ConstDatabase.cpp in rt-cubed still has a reference to nmg_booltree_leaf_tess. Replacing that with rt_booltree_leaf_tess allows me to get to the link phase. Here are the duplicate symbols you asked for:
20>------ Build started: Project: brlcad, Configuration: Release x64 ------
20>ConstDatabase.cpp
20>libbg-static.lib(polygon.obj) : error LNK2005: pd already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3 already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3box already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3cont already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3line already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3move already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3point already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_3space already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_arc already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_box already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_circle already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_cont already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_line already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_move already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_point already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pd_space already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3 already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3box already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3cont already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3line already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3move already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3point already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3ray already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pdv_3space already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3 already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3box already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3cont already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3line already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3move already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3point already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_3space already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_arc already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_box already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_circle already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_color already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_color_buc already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_cont already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_erase already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_flush already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_getOutputMode already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_label already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_line already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_linmod already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_move already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_point already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_setOutputMode already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: pl_space already defined in libbv-static.lib(vlist.obj)
20>libbg-static.lib(polygon.obj) : error LNK2005: plot3_invalid already defined in libbv-static.lib(vlist.obj)
Here's my config file for cmake. My build command is 'devenv "BRLCAD.sln" /project brlcad /build "Release^|x64"':
set(BRLCAD_ENABLE_BRLCAD_LIBRARY ON CACHE BOOL "Build brlcad.dll")
set(BRLCAD_ENABLE_COMPILER_WARNINGS OFF CACHE BOOL "BRLCAD_ENABLE_COMPILER_WARNINGS")
set(BRLCAD_ENABLE_MINIMAL ON CACHE BOOL "BRLCAD_ENABLE_MINIMAL")
set(BRLCAD_ENABLE_OPENNURBS_EXTENSIONS OFF CACHE BOOL "BRLCAD_ENABLE_OPENNURBS_EXTENSIONS")
set(BRLCAD_EXTRADOCS OFF CACHE BOOL "BRLCAD_EXTRADOCS")
set(BRLCAD_EXTRADOCS_HTML OFF CACHE BOOL "BRLCAD_EXTRADOCS_HTML")
set(BRLCAD_EXTRADOCS_PPT OFF CACHE BOOL "BRLCAD_EXTRADOCS_PPT")
set(BRLCAD_EXTRADOCS_VALIDATE OFF CACHE BOOL "BRLCAD_EXTRADOCS_VALIDATE")
set(BRLCAD_FLAGS_DEBUG OFF CACHE BOOL "BRLCAD_FLAGS_DEBUG")
set(BRLCAD_INSTALL_EXAMPLE_GEOMETRY OFF CACHE BOOL "BRLCAD_INSTALL_EXAMPLE_GEOMETRY")
set(BUILD_SHARED_LIBS ON CACHE BOOL "BUILD_SHARED_LIBS")
set(BUILD_STATIC_LIBS ON CACHE BOOL "BUILD_STATIC_LIBS")
set(BUILD_TESTING OFF CACHE BOOL "BUILD_TESTING")
set(BRLCAD_ENABLE_TK OFF CACHE BOOL "BRLCAD_ENABLE_TK")
set(BRLCAD_ITK "DISABLED BRLCAD_ENABLE_TK" CACHE STRING "BRLCAD_ITK")
set(BRLCAD_IWIDGETS "DISABLED BRLCAD_ENABLE_TK" CACHE STRING "BRLCAD_IWIDGETS")
set(BRLCAD_TK "DISABLED BRLCAD_ENABLE_TK" CACHE STRING "BRLCAD_TK")
set(BRLCAD_TKHTML "DISABLED BRLCAD_ENABLE_TK" CACHE STRING "BRLCAD_TKHTML")
set(BRLCAD_TKTABLE "DISABLED BRLCAD_ENABLE_TK" CACHE STRING "BRLCAD_TKTABLE")
OK, that's undoubtedly related to making bv/plot3.h header only. Not sure what the fix is yet.
@kennethsdavis Does f5f1e19d376b2acdbc142cf16665eb1e5ab94aa5 fix the issue for you?
@starseeker Yes, this commit builds brlcad.dll without error.
@kennethsdavis can you confirm latest main still builds for you (as of at least 89563f4 ?) If so we can probably close this.
Confirmed. 89563f4 still builds
7.36.0
7-36-0_brlcad-dll.patch
7.38.1