Using pjsua2 with 3rd party media - media

I am trying to use pjsua (pjproject-2.10) for ubuntu(x86_64) system but I want to use a third party media library as per the instructions given in the link:
Integrating Third Party Media Stack into PJSUA-LIB.
My modified config_site.h (placed at path pjlib/include/pj/config_site.h) is as follows:
#define PJSUA_MEDIA_HAS_PJMEDIA 0
#define THIRD_PARTY_MEDIA 1
#if THIRD_PARTY_MEDIA
/*
* Sample settings for using third party media with pjsua-lib
*/
# define PJMEDIA_HAS_G711_CODEC 0
# define PJMEDIA_HAS_ALAW_ULAW_TABLE 0
# define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
# define PJMEDIA_HAS_SPEEX_AEC 0
# define PJMEDIA_HAS_L16_CODEC 0
# define PJMEDIA_HAS_GSM_CODEC 0
# define PJMEDIA_HAS_SPEEX_CODEC 0
# define PJMEDIA_HAS_ILBC_CODEC 0
# define PJMEDIA_HAS_G722_CODEC 0
# define PJMEDIA_HAS_G7221_CODEC 0
# define PJMEDIA_HAS_OPENCORE_AMRNB_CODEC 0
# define PJMEDIA_HAS_VIDEO 0
# define PJMEDIA_HAS_FFMPEG 0
# undef PJMEDIA_VIDEO_DEV_HAS_SDL
# define PJMEDIA_VIDEO_DEV_HAS_SDL 0
# define PJMEDIA_VIDEO_DEV_HAS_QT 0
# define PJMEDIA_VIDEO_DEV_HAS_IOS 0
# define PJMEDIA_VIDEO_DEV_HAS_DSHOW 0
# define PJMEDIA_VIDEO_DEV_HAS_CBAR_SRC 0
# define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 0
# undef PJMEDIA_VIDEO_DEV_HAS_V4L2
# define PJMEDIA_VIDEO_DEV_HAS_V4L2 0
#endif /* THIRD_PARTY_MEDIA */
PS: I just want audio support in my application, so PJMEDIA_HAS_VIDEO
is set to 0.
I use the following commands to compile pjsua2 with 3rd party media. (I am taking the cofigure command reference from pjsip-apps/src/3rdparty_media_sample/config_site.h)
CFLAGS="-g -Wno-unused-label" ./configure --enable-ext-sound --disable-speex-aec --disable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-opencore-amr --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-libwebrtc --disable-video --disable-libyuv --disable-openh264 --enable-shared --prefix=<application_path>/dep_x86-64_pj2.10/
make dep
make lib
make install
The compilation of pjsua2 with command 'make lib' is successful, and the libraries are getting successfully included in my main project (Which is a Qt based project).
But when i build the project (in QtCreator), following undefined references errors pop-up:
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_conf_connect_param_default'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_set_snd_dev2'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_ext_snd_dev_get_conf_port'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_snd_dev_param_default'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_conf_connect2'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_ext_snd_dev_create'
<application_path>/dep_x86-64_pj2.10/lib//libpjsua2.so: undefined reference to `pjsua_ext_snd_dev_destroy'
What I have found out:
If i don't include the modified config_site.h (with 3rd party media enabled), the compilation is successful (most probably as pjsua.so file contains references to these functions), and the application builds successfully with no errors. All calls are made properly, with pjmedia providing the audio.
When i looked at the undefined references, they were occuring in functions (in the file pjsip/src/pjsua2/media.cpp) which would be only used if the application didn't use 3rd party media (e.g. startTransmit2(), setCaptureDev(), setPlaybackDev() etc.). If I manually comment those function calls (to functions which are causing undefined references), I am able to build pjsua2 and my application successfully.
But this doesn't seem to be the right way to do things.
Can anyone tell me why these undefined references are coming while building my application. Or where am I going wrong in this? Any Help would be appreciated.

Related

nim: Use a static library

I've tried to get an audio library statically linked to my program. I use this nimble package. To get it run, i had to build the soloud library as described here. For short after download i ran "genie --with-miniaudio-only --platform=x64 vs2017" in the "build" folder and got the source code to generate the dynamic and the static library. For now i can run the following demo program from the nimble package with the generated dll alongside:
import solouddotnim, times, os
var i, spin = 0
var sl : ptr Soloud
sl = Soloud_create()
discard Soloud_init(sl)
Soloud_setGlobalVolume(sl, 1)
var stream = WavStream_create()
discard WavStream_load(cast[ptr Wav](stream), "test.ogg")
let currentTime = epochTime()
let length = WavStream_getLength(stream)
discard Soloud_play(cast[ptr Soloud](sl), cast[ptr Wav](stream))
while epochTime() - currentTime <= length:
sleep(100)
Soloud_deinit(sl)
Soloud_destroy(sl)
Now to the static-link part. In the solouddotnim.nim file of the nimble package i use, i see this part:
when defined(windows):
const
libname* = "libsoloud.dll"
elif ...
So i simple changed the windows part to the following, re-installed the nimble-package and placed the "soloud_static_x64.lib" alongside to the "main.nim" of the testproject:
when defined(windows):
const
libname* = "soloud_static_x64.lib"
elif ...
But this doesent make it. (cant open "soloud_static_x64.lib" error when build)
Evereywhere where the constant "libname" is used there are the pragmas "cdecl", "importc" and "dynlib". For example:
proc Soloud_create*(): ptr Soloud {.cdecl, importc: "Soloud_create", dynlib: libname.}
So "dynlib" is telling nim to use a dll on windows. But was is the pragma for static libraries?
In the nim documentations i only found DynlibOverride to link to static libraries, but i dont understand the example and here is where i stuck. I've tried the followings:
nim c --dynlibOverride:libname --passL:soloud_static_x64.lib "examples\00-ogg\Example00_ogg.nim"
nim c --dynlibOverride:soloudtotnim --passL:soloud_static_x64.lib "examples\00-ogg\Example00_ogg.nim"
Firstly i dont know what parameter dynlibOverride expects and secondly both compiles, but dont work. It expects a dynamic library alongside the exe.
My last try was to remove all dynlib pragmas from the nimble package. But now i cant compile it.
undefined reference to `Soloud_create'
...
Error: execution of an external program failed: 'gcc.exe...
My knowlege ends here. Can someone help me?
Thanks in advance.
Edit:
I could not get any of your solutions work. I break down the problem as small as possible so everybody can reproduce this:
"foo.nim" contains this:
proc add*(a, b: int): int {.cdecl, exportc.} =
a + b
proc sub*(a, b: int): int {.cdecl, exportc.} =
a - b
The .lib is simply generated with this command: "nim c --app:staticlib foo.nim"
Now to use it i created a file "main.nim" with this content:
{.passL:"foo.lib".}
proc add*(a, b: int):int {.cdecl, importc.}
proc sub*(a, b: int):int {.cdecl, importc.}
echo add(10, 5)
echo sub(10, 5)
if i simply build it with "nim c -r main.nim", i get the following output and error:
P:\Nim\LearnCBinding>nim c -r main.nim
Hint: used config file 'C:\nim-1.5.1\config\nim.cfg' [Conf]
Hint: used config file 'C:\nim-1.5.1\config\config.nims' [Conf]
....CC: stdlib_io.nim
CC: stdlib_system.nim
CC: main.nim
Hint: [Link]
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x1f6): multiple definition of `PreMainInner'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x120): first defined here
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x20a): multiple definition of `PreMain'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x134): first defined here
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x240): multiple definition of `NimMainInner'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x16f): first defined here
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x254): multiple definition of `NimMain'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x183): first defined here
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x285): multiple definition of `main'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x1b4): first defined here
foo.lib(#mfoo.nim.c.o):#mfoo.nim.c:(.text+0x2da): multiple definition of `NimMainModule'
C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o:#mmain.nim.c:(.text+0x209): first defined here
collect2.exe: error: ld returned 1 exit status
Error: execution of an external program failed: 'C:\nim-1.5.1\dist\mingw64\bin\gcc.exe -o P:\Nim\LearnCBinding\main.exe C:\Users\Peter\nimcache\main_d\stdlib_io.nim.c.o C:\Users\Peter\nimcache\main_d\stdlib_system.nim.c.o C:\Users\Peter\nimcache\main_d\#mmain.nim.c.o foo.lib '
Because of the multiple definition error i also tried to build foo.lib with parameter "--noMain:on", but it doesnt make any difference.
Do you have the same problem? By the way i use the current version of Nim "nim-1.5.1" and reinstalled MingW with the finish.exe from nim.
I will try to help you with the following error you have:
undefined reference to `Soloud_create'
but i will assume that you have configured your environment so you can compile your nim programs with visual studio compiler (by adding --cc:vcc to your compile command)
this is because you already seem to have visual studio 2017 and you are compiling soloud static library with it. I think this is the best option when you are compiling with one compiler both: static library and executable that will use it.
open your static library (soloud_static_x64.lib) with some text/hex editor and search for "Soloud_create". i guess you will not find anything. so why is that? because for some reason author decided to not include "C interfacing" in a static library project. so it contains only C++ symbols and not pure C symbols that are needed for our solouddotnim.nim module.
let's try to find out what .cpp file we need for that. i noticed this information on official web site of Soloud - http://sol.gfxile.net/soloud/c_api.html
so i guess we need only one file: soloud_c.cpp
let's try to just include it in SoloudStatic.vcxproj file generated by you with Genie. like this:
..
<ClCompile Include="..\..\src\c_api\soloud_c.cpp">
</ClCompile>
..
and recompile our static library. i use this command in powershell:
& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\MSBuild.exe' /p:PlatformToolset=v142`;WindowsTargetPlatformVersion=10`;Configuration=Release`;Platform=x64 .\SoloudStatic.vcxproj
but you can compile how you want. just make sure that it's architecture is really x64. you can check it with this command:
dumpbin /headers soloud_static_x64.lib | more
finally just link it with your nim file. add this line to the top:
{.link:"soloud_static_x64.lib".}
and compile nim file with this command:
nim c --cc:vcc --dynlibOverride:libsoloud.dll -r "examples\00-ogg\Example00_ogg.nim"

undefined reference when applying patch file

I am working on a project where I have to make some custom system calls by modifying the kernel files in a VM. I am trying to test that my calls work by applying a patch file to a new snapshot of a VM. However whenever I run the patch file i keep getting this error:
arch/x86/entry/syscall_64.o:(.rodata+0xa78): undefined reference to `__x64_sys_set_tag'
arch/x86/entry/syscall_64.o:(.rodata+0xa80): undefined reference to `__x64_sys_get_tag'
I checked and the calls are both in the syscall_64.tbl so I'm not sure what else could be causing the issue.
after linux 4.19 ,you need to add _64 as your syscall's head
like this

LUFA with Eclipse but without Makefile

I want to use LUFA for my ATMEGA32U4 to communicate via CDC. So to start I created a project in Eclipse and imported the LUFA folder and the files for the Device VirtualSerial demo. The thing is, that I want to do that without using the makefile (mostly because I have never used makefiles before). Is that possible and what do I need to do? I have tried a lot, but I get errors all the time. Is there any instruction?
Thanks!
Sebastian
P.S.: Just to be clear. I want to use the "Managed Builder", so that I don´t have to do anything with the makefile, but Eclipse does that for me.
P.P.S.: I also tried http://www.fourwalledcubicle.com/files/LUFA/Doc/140928/html/_page__exporting_library.html
with AS7 and Eclipse, but it didn´t work with both.....
P.P.S.: When I try to build the project I get the error
'Building target: Test1.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,Test1.map -mmcu=atmega32u4 -o "Test1.elf" ./LUFA/Platform/UC3/Exception.o ./LUFA/Platform/UC3/InterruptManagement.o ./LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.o ./LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.o ./LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.o ./LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.o ./LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.o ./LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.o ./LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.o ./LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.o ./LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.o ./LUFA/Drivers/USB/Core/UC3/Device_UC3.o ./LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.o ./LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.o ./LUFA/Drivers/USB/Core/UC3/Host_UC3.o ./LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.o ./LUFA/Drivers/USB/Core/UC3/Pipe_UC3.o ./LUFA/Drivers/USB/Core/UC3/USBController_UC3.o ./LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.o ./LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.o ./LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.o ./LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.o ./LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.o ./LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o ./LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o ./LUFA/Drivers/USB/Core/ConfigDescriptors.o ./LUFA/Drivers/USB/Core/DeviceStandardReq.o ./LUFA/Drivers/USB/Core/Events.o ./LUFA/Drivers/USB/Core/HostStandardReq.o ./LUFA/Drivers/USB/Core/USBTask.o ./LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o ./LUFA/Drivers/USB/Class/Host/AudioClassHost.o ./LUFA/Drivers/USB/Class/Host/CDCClassHost.o ./LUFA/Drivers/USB/Class/Host/HIDClassHost.o ./LUFA/Drivers/USB/Class/Host/MIDIClassHost.o ./LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o ./LUFA/Drivers/USB/Class/Host/PrinterClassHost.o ./LUFA/Drivers/USB/Class/Host/RNDISClassHost.o ./LUFA/Drivers/USB/Class/Host/StillImageClassHost.o ./LUFA/Drivers/USB/Class/Device/AudioClassDevice.o ./LUFA/Drivers/USB/Class/Device/CDCClassDevice.o ./LUFA/Drivers/USB/Class/Device/HIDClassDevice.o ./LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o ./LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o ./LUFA/Drivers/USB/Class/Device/PrinterClassDevice.o ./LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o ./LUFA/Drivers/USB/Class/Common/HIDParser.o ./LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.o ./LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.o ./LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.o ./LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.o ./LUFA/Drivers/Board/Temperature.o ./LUFA/Build/DMBS/Template/Template.o ./LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.o ./Descriptors.o ./VirtualSerial.o
./LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.o: In function main':
HID_EEPROM_Loader.c:(.text.startup.main+0x0): multiple definition ofmain'
./LUFA/Build/DMBS/Template/Template.o:Template.c:(.text.startup.main+0x0): first defined here
./VirtualSerial.o: In function main':
VirtualSerial.c:(.text.startup.main+0x0): multiple definition ofmain'
./LUFA/Build/DMBS/Template/Template.o:Template.c:(.text.startup.main+0x0): first defined here
./LUFA/Drivers/USB/Class/Device/AudioClassDevice.o: In function Audio_Device_ProcessControlRequest':
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0xf8): undefined reference toCALLBACK_Audio_Device_GetSetEndpointProperty'
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0x15a): undefined reference to CALLBACK_Audio_Device_GetSetEndpointProperty'
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0x182): undefined reference toCALLBACK_Audio_Device_GetSetInterfaceProperty'
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0x1e4): undefined reference to CALLBACK_Audio_Device_GetSetInterfaceProperty'
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0x236): undefined reference toCALLBACK_Audio_Device_GetSetEndpointProperty'
AudioClassDevice.c:(.text.Audio_Device_ProcessControlRequest+0x284): undefined reference to CALLBACK_Audio_Device_GetSetInterfaceProperty'
./LUFA/Drivers/USB/Class/Device/HIDClassDevice.o: In functionHID_Device_ProcessControlRequest':
HIDClassDevice.c:(.text.HID_Device_ProcessControlRequest+0xd0): undefined reference to CALLBACK_HID_Device_CreateHIDReport'
HIDClassDevice.c:(.text.HID_Device_ProcessControlRequest+0x18e): undefined reference toCALLBACK_HID_Device_ProcessHIDReport'
./LUFA/Drivers/USB/Class/Device/HIDClassDevice.o: In function HID_Device_USBTask':
HIDClassDevice.c:(.text.HID_Device_USBTask+0xa2): undefined reference toCALLBACK_HID_Device_CreateHIDReport'
./LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o: In function MS_Device_USBTask':
MassStorageClassDevice.c:(.text.MS_Device_USBTask+0xf4): undefined reference toCALLBACK_MS_Device_SCSICommandReceived'
./LUFA/Drivers/USB/Class/Common/HIDParser.o: In function USB_ProcessHIDReport':
HIDParser.c:(.text.USB_ProcessHIDReport+0x5bc): undefined reference toCALLBACK_HIDParser_FilterHIDReportItem'
./LUFA/Build/DMBS/DMBS/HID_EEPROM_Loader/HID_EEPROM_Loader.o: In function main':
HID_EEPROM_Loader.c:(.text.startup.main+0x4): undefined reference to_binary_InputEEData_bin_size'
HID_EEPROM_Loader.c:(.text.startup.main+0x6): undefined reference to _binary_InputEEData_bin_size'
HID_EEPROM_Loader.c:(.text.startup.main+0xe): undefined reference to_binary_InputEEData_bin_start'
HID_EEPROM_Loader.c:(.text.startup.main+0x10): undefined reference to `_binary_InputEEData_bin_start'
collect2.exe: error: ld returned 1 exit status
make: *** [Test1.elf] Error 1
"make all" terminated with exit code 2. Build might be incomplete.
Solved it!
There were a lot of c-files, that were unnecessary, but eclipse wanted to compile them anyway. I excluded them and now it´s working.

Error Building Pin Tool that Uses External Library

I declared a function foo() in a header file imp.h and implemented it in imp.c. Then I generated a shared library named libimp.so and in my Pin tool I called foo().
In order to link the tool with this new library I added the following definitions to makefile.rules in its directory:
TOOL_CXXFLAGS += -I/path/to/imp.h
TOOL_LPATHS += -L/path/to/libimp.so
TOOL_LIBS += -limp
I also set LD_LIBRARY_PATH to the /path/to/libimp.so. But, at runtime, if I use foo(), the following error will be received:
dlopen failed. library "libimp.so" not found.
The library is OK when I call it from a simple test program. Any ideas?
I also set LD_LIBRARY_PATH to the /path/to/libimp.so
If the full path to libimp.so is literally /path/to/libimp.so, then the correct value for LD_LIBRARY_PATH is /path/to, and not /path/to/libimp.so.
(It isn't clear from your question whether you understand this.)
You may wish to link your pintool with -Wl,--rpath=/path/to so you don't have to set LD_LIBRARY_PATH at all.

compile option for rcpp and lib files in windows

Hi I am trying to work with the rcpp. For this I want some cpp code which loads a dll by use of a lib-file (which has the same name as ). the code which I let run is:
cppFunction(includes=c("#include "windef.h","#include \"C:/data/Rdata/IHUAPI.H\" "), 'int functietom(int a){long serverhandle;int lRet;lRet = ihuConnect ( "historian1",NULL,NULL, &serverhandle ); return 5;}', verbose
= TRUE)
I get the following error:
undefined reference to `ihuConnect#16' collect2: ld returned 1 exit
status Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared object
'C:/Users/user1663/AppData/Local/Temp/RtmpSW1Ki7/sourcecpp_1a04df63309/sourceCpp_26588.dll':
LoadLibrary failure:
the ihuConnect function is located in the ihuapi.lib and ihuape.dll files. In c++ in visual studio I add the lib file as added dependency and then I get rid of this error because I also sometimes get this error and then it was that I forgot to add the lib file in the compilation.
Thus My question is: how can I add this lib file as option in the compilation.
when I use dyn.load
("C:/data/Rdata/ihUAPI.dll")
and then check if it is loaded then he says yes
the problem is that getDLLRegisteredRoutines('ihUAPI', addNames = TRUE)
then it says:
data frame with 0 columns and 0 rows
so the dll seems not to contain the functions but it does when I use it from visual studio.
So please some help with lib-files and ddl-files
Tom Wambecq
You missed the Rcpp FAQ entry 2.9 'Can I use Rcpp with Visual Studio ?'.
And to kill all the suspense: No, you cannot.

Resources