The module level constant (below) fixed my problem as you suggested. Thank
you!
module rhd2000evalboard
export open_board
const mylib="/home/paul/toolbox/DataAcq/libokFrontPanel.so"
function open_board()
x=ccall((:okFrontPanel, mylib), Ptr{Void}, ())
end
end
On Wednesday, April 29, 2015 at 2:01:58 PM UTC-4, Jameson wrote:
>
> `const` declarations in a function are essentially just ignored by the
> compiler. you need a module-level constant for this to work.
>
> On Wed, Apr 29, 2015 at 1:54 PM Paul Thompson <[email protected]
> <javascript:>> wrote:
>
>> Hi,
>>
>> I am on Julia 0.3.2 on Debian and have been able to successfully work
>> with some library functions using ccall like this:
>>
>> const mylib="/home/paul/toolbox/DataAcq/libokFrontPanel.so"
>> x=ccall((:okFrontPanel, mylib), Ptr{Void}, ())
>>
>> as well as with other functions in the library. I am now moving some of
>> these calls into a module, but now I get an error. For instance, if I call
>> the function open_board() in the following module:
>>
>> module rhd2000evalboard
>>
>> export open_board
>>
>> function open_board()
>>
>> const mylib="/home/paul/toolbox/DataAcq/libokFrontPanel.so"
>> x=ccall((:okFrontPanel, mylib), Ptr{Void}, ())
>>
>> end
>>
>> end
>>
>> I get the error:
>>
>> ERROR: type: open_board: in ccall: first argument not a pointer or valid
>> constant expression, expected DataType, got Type{(Any...,)}
>>
>> I'm not sure why the input tuple is no longer constant. I have tried to
>> use the constant tuple as an input to the function as well with no success.
>> Any one have any ideas?
>>
>> Thanks!
>>
>>
>> Paul
>>
>>
>>