# SQLite3 Compilation issue

**URL:** <https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228>\
**Category:** Ruby\
**Created:** [March 18, 2008, 4:28am UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228 "2008-03-18T04:28:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mtmtmt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@mtmtmt](https://www.ruby-forum.com/u/mtmtmt)\
**Post date:** [March 18, 2008, 4:28am UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228/1 "2008-03-18T04:28:17Z")

</div>

Hey guys,

I wonder if you could help me out with this,

The situation is:  
Compiled Ruby 1.8.6 myself using MSVC8  
Downloaded SQLite3 and placed the headers and libraries in the  
proper locations (atleast i think so)  
Ran the sqlite3-ruby gem and it’s happy, everything seems fine  
Testing creating a DB in irb causes it to throw up a MSCVRT8-  
ruby18.dll missing error.  
Recompiled ruby, but the compilation process only creates MSCVR8-  
ruby18.dll (missing T)  
If anyone has an idea to fix this, great! please tell me how.

So, i think, maybe its SQLite3-ruby at fault, so i’ll recompile it.  
Download the sources, create a sqlite3.lib  
Download the sqlite3-ruby sources, and try compiling it using my  
compiler  
Nags on  
BLOB already defined in (something)\_types.h, basically i think its  
related to winsock2.h

Anyone dealt with this before?

---

<div class="post-metadata">

**Author:** ![mtmtmt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@mtmtmt](https://www.ruby-forum.com/u/mtmtmt)\
**Post date:** [March 18, 2008, 9:01pm UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228/2 "2008-03-18T21:01:19Z")

</div>

On Mar 18, 12:27 am, mt [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hey guys,
> 
> I wonder if you could help me out with this,
> 
> The situation is:  
> Compiled Ruby 1.8.6 myself using MSVC8  
> Downloaded SQLite3 and placed the headers and libraries in the  
> proper locations (atleast i think so)

Did you set INCLUDE and LIB to add these files? or you just drop them  
into INCLUDE and LIB of your compiler?

> Ran the sqlite3-ruby gem and it’s happy, everything seems fine  
> Testing creating a DB in irb causes it to throw up a MSCVRT8-  
> ruby18.dll missing error.

It seems you’re trying to use the pre-built windows gem instead of  
compile from source… If you had RubyGems 1.0.1 installed, that  
should happen 🙂

the pre-built SQlite gem is built with VC6 and linked to standard ruby  
runtime (MSVCRT-RUBY18.DLL)

> related to winsock2.h

I’ve already reported this problem:

[http://rubyforge.org/tracker/index.php?func=detail&aid=10761&group\_id=254&atid=1045](http://rubyforge.org/tracker/index.php?func=detail&aid=10761&group_id=254&atid=1045)

> Anyone dealt with this before?

Yes, been there, done that, failed too 🙂

You will require to build everything from scratch for make Ruby VC8  
build to work properly. That includes sqlite3 DLL itself, since it  
links to a different runtime than your Ruby interpreter. Search the  
list for MSVCRT VC6 and VC8 issues.

HTH,

---

<div class="post-metadata">

**Author:** ![mtmtmt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@mtmtmt](https://www.ruby-forum.com/u/mtmtmt)\
**Post date:** [March 19, 2008, 6:27am UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228/3 "2008-03-19T06:27:40Z")

</div>

On Wed, Mar 19, 2008 at 3:59 AM, Luis L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Did you set INCLUDE and LIB to add these files? or you just drop them  
> into INCLUDE and LIB of your compiler?

Dropped them into the include and lib.

> runtime (MSVCRT-RUBY18.DLL)
> 
> > ```
> > BLOB already defined in (something)_types.h, basically i think its
> > 
> > ```
> 
> You will require to build everything from scratch for make Ruby VC8  
> build to work properly. That includes sqlite3 DLL itself, since it  
> links to a different runtime than your Ruby interpreter. Search the  
> list for MSVCRT VC6 and VC8 issues.

Sorry, I don’t understand. I did build everything from scratch, and  
the last BLOB error was occuring whilst i was trying to create  
Sqlite3-ruby, where sqlite3.lib had been compiled by myself on my  
compiler. It just seems to me a sort of precedence issue, that if  
somehow, we could exclude certain libraries from the compilation  
process, we’d be fine…

Regards,  
MT

---

<div class="post-metadata">

**Author:** ![mtmtmt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@mtmtmt](https://www.ruby-forum.com/u/mtmtmt)\
**Post date:** [March 19, 2008, 3:51pm UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228/4 "2008-03-19T15:51:30Z")

</div>

On Mar 19, 2:26 am, mutahhir hayat [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > Testing creating a DB in irb causes it to throw up a MSCVRT8-  
> > > ruby18.dll (missing T)  
> > > I’ve already reported this problem:  
> > > list for MSVCRT VC6 and VC8 issues.
> 
> Sorry, I don’t understand. I did build everything from scratch, and  
> the last BLOB error was occuring whilst i was trying to create  
> Sqlite3-ruby, where sqlite3.lib had been compiled by myself on my  
> compiler.

The BLOB error I reported in the rubyforge ticket is the same, the  
SWIG generated wrapper (the .c file used in sqlite3-ruby) clash with  
the BLOBL definition one of the Windows headres includes. this happens  
with VC6 and VC7 too.

Regarding the compilation of sqlite3, I commented that since use the  
standard distribution available online is linked with MSVCRT.dll, and  
that could generate some crashes since your ruby interpreter is linked  
to MSVCR80.DLL

> It just seems to me a sort of precedence issue, that if  
> somehow, we could exclude certain libraries from the compilation  
> process, we’d be fine…

The problem recides in the SWIG code (.i) which is used to generate  
the .c file that is raising the compilation issues.

---

<div class="post-metadata">

**Author:** ![mtmtmt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/bcef8e/32.png) [@mtmtmt](https://www.ruby-forum.com/u/mtmtmt)\
**Post date:** [March 19, 2008, 4:07pm UTC](https://www.ruby-forum.com/t/sqlite3-compilation-issue/132228/5 "2008-03-19T16:07:58Z")

</div>

Thanks a lot. 🙂

I wish you had better news, but atleast i can abandon this, and move  
back to my MINGW compiled ruby.

Mt.
