Perhaps use a fully qualified reference to your class
(FreeLingTokenizer::FreeLingTokenizer)
? I'm not really sure without seeing your code.

On Fri, Mar 30, 2012 at 2:31 PM, rhasson <[email protected]> wrote:

> 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<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/**inc**lude'],
>>>>>       '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@**googlegroup**s.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<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