andlabs / ui

Platform-native GUI library for Go.
Other
8.34k stars 647 forks source link

go build: libstdc++ deprecated, linking issue, and undef symbols for arch x86_64 #306

Closed nicored closed 6 years ago

nicored commented 6 years ago

My builds keep failing.

OS: OSX 10.13.4
Go: go1.10.3 darwin/amd64
Gcc: 
    - Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include- 
    - dir=/usr/include/c++/4.2.1
    - Apple LLVM version 9.1.0 (clang-902.0.39.2)
    - Target: x86_64-apple-darwin17.5.0
    - Thread model: posix
    - InstalledDir: /Library/Developer/CommandLineTools/usr/bin

I first tried a go get and then built my project, but got some issues. So I build libui:

cloned latest commit: cda991b7e252874ce69ccdb7d1a40de49cee5839
mkdir build && cd build
cmake .. -DBUILD_SHARED_LIBS=OFF
make
cp out/libui.a ~/go/src/github.com/andlabs/ui/libui_darwin_amd64.a

And then run go build in my project and got the following:

/usr/local/Cellar/go/1.10.3/libexec/pkg/tool/darwin_amd64/link: running clang++ failed: exit status 1
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
ld: warning: object file (/tmp/go-link-382467271/000024.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000025.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000026.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000027.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000028.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000029.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000030.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000031.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000032.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000033.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000034.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000035.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000036.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000037.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000038.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000039.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000040.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000041.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000042.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000043.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000044.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000045.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000046.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000047.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000048.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000049.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000050.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000051.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000052.o) was built for newer OSX version (10.13) than being linked (10.8)
ld: warning: object file (/tmp/go-link-382467271/000053.o) was built for newer OSX version (10.13) than being linked (10.8)
Undefined symbols for architecture x86_64:
  "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:
      void std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> >::__push_back_slow_path<cv::Mat const&>(cv::Mat const&&&) in 000036.o
      _Image_IMDecode in 000040.o
      void std::__1::vector<int, std::__1::allocator<int> >::__push_back_slow_path<int const&>(int const&&&) in 000040.o
      _FillPoly in 000041.o
      _DrawContours in 000041.o
      void std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > >::__push_back_slow_path<cv::Point_<int> >(cv::Point_<int>&&) in 000041.o
      void std::__1::vector<std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > >, std::__1::allocator<std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > > > >::__push_back_slow_path<std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > > const&>(std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > > const&&&) in 000041.o
      ...
  "std::logic_error::logic_error(char const*)", referenced from:
      void std::__1::vector<int, std::__1::allocator<int> >::__push_back_slow_path<int const&>(int const&&&) in 000040.o
      void std::__1::vector<cv::Point_<int>, std::__1::allocator<cv::Point_<int> > >::__push_back_slow_path<cv::Point_<int> >(cv::Point_<int>&&) in 000041.o
      void std::__1::vector<cv::Point_<float>, std::__1::allocator<cv::Point_<float> > >::__push_back_slow_path<cv::Point_<float> >(cv::Point_<float>&&) in 000041.o
      void std::__1::vector<cv::Rect_<int>, std::__1::allocator<cv::Rect_<int> > >::__push_back_slow_path<cv::Rect_<int> const&>(cv::Rect_<int> const&&&) in 000042.o
  "_uiDrawFontFamiliesFamily", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesFamily in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesFamily)
  "_uiDrawFontFamiliesNumFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesNumFamilies in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesNumFamilies)
  "_uiDrawFreeFontFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeFontFamilies in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeFontFamilies)
  "_uiDrawFreeTextFont", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeTextFont in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeTextFont)
  "_uiDrawListFontFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawListFontFamilies in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawListFontFamilies)
  "_uiDrawLoadClosestFont", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_newFont in 000009.o
  "_uiDrawTextFontGetMetrics", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontGetMetrics in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontGetMetrics)
  "_uiDrawTextFontHandle", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontHandle in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontHandle)
  "_uiDrawTextLayoutSetWidth", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextLayoutSetWidth in 000009.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextLayoutSetWidth)
ld: symbol(s) not found for architecture x86_64

EDIT: When building ui with go build I get similar output as above btw, minus the warnings:

ui git:(master) ✗ sudo go build -a
# github.com/andlabs/ui
Undefined symbols for architecture x86_64:
  "_uiDrawFontFamiliesFamily", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesFamily in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesFamily)
  "_uiDrawFontFamiliesNumFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesNumFamilies in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFontFamiliesNumFamilies)
  "_uiDrawFreeFontFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeFontFamilies in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeFontFamilies)
  "_uiDrawFreeTextFont", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeTextFont in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawFreeTextFont)
  "_uiDrawListFontFamilies", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawListFontFamilies in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawListFontFamilies)
  "_uiDrawLoadClosestFont", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_newFont in _x010.o
  "_uiDrawTextFontGetMetrics", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontGetMetrics in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontGetMetrics)
  "_uiDrawTextFontHandle", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontHandle in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextFontHandle)
  "_uiDrawTextLayoutSetWidth", referenced from:
      __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextLayoutSetWidth in _x010.o
     (maybe you meant: __cgo_4c8af1dc3c2c_Cfunc_uiDrawTextLayoutSetWidth)
ld: symbol(s) not found for architecture x86_64
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
nicored commented 6 years ago

Checked out Alpha 3.5 and it worked

Nv7-GitHub commented 3 years ago

Where do I get alpha 3.5? I am having this issue