Nathan, 

Thanks for the help.  I was finally able to link my static library with my 
module but now I'm again getting an undefined symbol error but this time on 
my own module's methods.
I can't seem to get away from this problem.

[root@localdev Release]# ldd freeling.node 
linux-gate.so.1 =>  (0x00a4e000)
libfreeling-3.0-alfa1.so => 
/home/roy/freeling/free3/lib/libfreeling-3.0-alfa1.so (0x00b6b000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00542000)
libm.so.6 => /lib/libm.so.6 (0x00110000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0092b000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0013a000)
libc.so.6 => /lib/libc.so.6 (0x0023b000)
libboost_regex.so.1.44.0 => /usr/lib/libboost_regex.so.1.44.0 (0x0042d000)
libboost_filesystem.so.1.44.0 => /usr/lib/libboost_filesystem.so.1.44.0 
(0x00155000)
/lib/ld-linux.so.2 (0x0021c000)
libicuuc.so.44 => /usr/lib/libicuuc.so.44 (0x00631000)
libicui18n.so.44 => /usr/lib/libicui18n.so.44 (0xb7533000)
libboost_system.so.1.44.0 => /usr/lib/libboost_system.so.1.44.0 (0x00ab0000)
libicudata.so.44 => /usr/lib/libicudata.so.44 (0xb66f5000)
libdl.so.2 => /lib/libdl.so.2 (0x00207000)
[root@localdev Release]# node
> require('./freeling')
Error: /home/roy/freeling/node_bind/build/Release/freeling.node: undefined 
symbol: _ZN17FreeLingTokenizer2tkE
    at Object..node (module.js:476:11)
    at Module.load (module.js:352:32)
    at Function._load (module.js:310:12)
    at Module.require (module.js:358:17)
    at require (module.js:374:17)
    at repl:1:2
    at REPLServer.eval (repl.js:85:21)
    at Interface.<anonymous> (repl.js:202:12)
    at Interface.emit (events.js:67:17)
    at Interface._onLine (readline.js:169:10)
> 

FreeLingTokenizer is my class, but I'm not sure why now it can't find its 
symbols.

Here is my binding.gyp file:

{
  'targets': [
    {
      'target_name': 'freeling',
      'type': 'loadable_module',
      'product_extension': 'node',
      'product_prefix': '',
      'include_dirs': ['.','/home/roy/freeling/free3/include'],
      'conditions': [
         ['OS=="linux"', {
        'libraries': ['/home/roy/freeling/free3/lib/libfreeling.so'],
         }],
       ],
      'sources': ['freeling.cc', 'freeling_tokenizer.cc', 'freeling.h', 
'freeling_tokenizer.h'],
    },
  ],
}


On Thursday, March 29, 2012 2:55:43 PM UTC-4, Nathan Rajlich wrote:
>
> Here's how node-ffi is doing it: 
> https://github.com/rbranson/node-ffi/blob/master/binding.gyp#L25-27
>
> On Thu, Mar 29, 2012 at 10:54 AM, rhasson <> wrote:
>
>> If I was to get a static version of the library, how would I configure 
>> the binding.gyp to take advantage of it?
>>
>>
>> On Thursday, March 29, 2012 1:48:55 PM UTC-4, Nathan Rajlich wrote:
>>
>>> All my experience has been with static compiled modules. That's what I'm 
>>> doing with node-ffi. If libfreeling offers precompiled static versions of 
>>> the library for you to use, I would suggest going that route. Another such 
>>> option is bundling libfreeling in your repo and compiling it during your 
>>> module's build (by converting it to gyp; this is sometimes easy, sometimes 
>>> hard/impossible).
>>>
>>> On Thu, Mar 29, 2012 at 9:15 AM, rhasson <> wrote:
>>>
>>>> yes I did.  I placed in the same directory as my library .cc files, I 
>>>> placed it in the freeling.node directory.
>>>>
>>>> I'm suspicious to how I'm setting up my binding.gyp file.  I can't 
>>>> figure out how to tell in my binding.gyp file that I need my library to 
>>>> link with an external .so file.  Can you provide a sample .gyp file that 
>>>> show that?
>>>>
>>>> This is what I have but it still doesn't like 
>>>> libfreeling-3.0-alfa1.soproperly.
>>>>
>>>> {
>>>>    'targets': [
>>>>     {
>>>>       'target_name': 'freeling',
>>>>       'type': 'loadable_module',
>>>>       'product_extension': 'node',
>>>>       'product_prefix': '',
>>>>       'include_dirs': ['/home/roy/freeling/free3/**include'],
>>>>       'link_settings': {
>>>>       'libraries': ['libfreeling-3.0-alfa1.so'],
>>>>       'library_dirs': ['/home/roy/freeling/free3/**lib'],
>>>>    },
>>>>       'sources': ['freeling.cc', 'freeling_tokenizer.cc'],
>>>>     },
>>>>   ],
>>>> }
>>>>
>>>>
>>>> On Thursday, March 29, 2012 11:43:24 AM UTC-4, Nathan Rajlich wrote:
>>>>>
>>>>>
>>>>> libfreeling-3.0-alfa1.so => not found
>>>>>>
>>>>>
>>>>> So that needs to be fixed :p
>>>>>
>>>>> Did you try placing libfreeling-3.0-alfa1.so in the same directory as 
>>>>> freeling.node?
>>>>>  
>>>>  -- 
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-
>>>> **Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> nodejs+unsubscribe@**googlegroups.com<nodejs%[email protected]>
>>>> For more options, visit this group at
>>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>>
>>>
>>>  -- 
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to