• Login
sketchucation logo sketchucation
  • Login
Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

Getting Ruby C Extensions to work with 64-bit Windows

Scheduled Pinned Locked Moved Developers' Forum
7 Posts 3 Posters 1.4k Views 3 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    johnzdennis
    last edited by 17 Sept 2016, 00:01

    I've downloaded the C extension examples from the repository at github.com/SketchUp/ruby-c-extension-examples and played around with them a bit in Visual Studio 2015.

    When I try to build them, the Hello World example builds fine, but when I try to run it in Sketchup I get the following error:

    @unknownuser said:

    require 'SUEX_HelloWorld'
    Error: #<LoadError: 193: %1 is not a valid Win32 application. - C:/code/ruby-c-extension-examples-master/ruby-c-extension-examples-master/Debug (1.8)/SUEX_HelloWorld.so>

    The SUEX_UsingSWIG fails to build courtesy of a "MSC version unmatch: _MSC_VER: 1600 is expected" error.

    I found the following thread http://forums.sketchup.com/t/call-c-from-ruby-in-sketchup/17272/8 with some talk about previous versions of Visual Studio (2010 and 2013) but the current example repository has comments about making changes to allow for a VS2015 so...

    I guess my main question is whether I need to make some changes to the Visual Studio project (settings somewhere?) to get it to build for 64 bit (I'm running SketchUp Pro 2016 on 64-bit Windows 10)? Or is there some other issue?

    If I can just get the Hello World example to run I'll be off and running, but I've reached the point where I'm stumped. Thanks for any help.

    1 Reply Last reply Reply Quote 0
    • T Offline
      thomthom
      last edited by 17 Sept 2016, 09:46

      Remember to pick the correct build configuration for the SketchUp version you launch.

      msvc-build-config.gif

      Not sure about the SWIG project - just remove it if you don't intend to use it.

      Thomas Thomassen — SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • J Offline
        johnzdennis
        last edited by 17 Sept 2016, 18:31

        Of course! I feel quite silly (my only defense is that I'm very much a novice with Visual Studio). Thanks very much for the response - in a bit I'll write up a simple walkthrough in case someone else stumbles into this thread in the same situation that I was in.

        1 Reply Last reply Reply Quote 0
        • T Offline
          thomthom
          last edited by 18 Sept 2016, 10:42

          No worries. Nothing is obvious when you are new to it.
          We (SketchUp) actually have a tutorial on this planned. Hope to have it published later this fall.

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • J Offline
            johnzdennis
            last edited by 21 Sept 2016, 19:19

            So I'm running into a new issue; not sure if this has been encountered by anyone else, but building a "Debug" version of SUEX_HelloWorld works fine (Debug 2.0/x64) works fine, but trying to build a "Release" version fails with a bunch of C2375 errors (redefinition; different linkage) for a bunch of geometric functions. SWIG doesn't have the same problem. Any ideas?

            1 Reply Last reply Reply Quote 0
            • J Offline
              Jim
              last edited by 21 Sept 2016, 19:59

              Check out this issue on the GitHub Repo:

              Link Preview Image
              Build failed for Release (2.0) x64 platform · Issue #6 · SketchUp/ruby-c-extension-examples

              Using VS Express 2015 for Windows Desktop. I had to change the Runtime Library to use the /MD option instead of the /MT option in order to build SUEXT_HelloWorld for Release (2.0) on the x64 Platform. Properties > C/C++ > Code Generation...

              favicon

              GitHub (github.com)

              Thom posted a revised RubyLib.h file that fixes these.

              Hi

              1 Reply Last reply Reply Quote 0
              • J Offline
                johnzdennis
                last edited by 21 Sept 2016, 21:00

                HE SHOOTS HE SCORES!

                That fixed it - thanks so much!

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                1 / 1
                • First post
                  4/7
                  Last post
                Buy SketchPlus
                Buy SUbD
                Buy WrapR
                Buy eBook
                Buy Modelur
                Buy Vertex Tools
                Buy SketchCuisine
                Buy FormFonts

                Advertisement