Shared library with 10.2 NDK

I have some classes of Qt/stunts, I'm working on that I want to incorporate a shared library.

Originally, I was able to follow http://supportforums.blackberry.com/t5/Native-Development-Knowledge/How-to-create-a-shared-or-static... to create the library, but in the latest releases of the NDK, this does not work.

Method B of this article does not work for Qt\Cascades classes since moc is never called, even if the used compiler is QCC. If I want to do a project of Qt\Cascades, I can only do an application project. If I tape everything that is not related to the library (assets, translations, master, etc.). I got some errors.

Is first with the missing translation files. This can be corrected by changing the make files and the file *.pri (although I guess it will be readded by the NDK...)

The second and more important question, is that even when I add "TEMPLATE = lib" in the file * .pro, which appears to have ignored, I get an error which is described as 'missing main function', which tells me that it is still trying to apply as opposed to a *. so.

How can I produce a shared Qt\Cascades within the current NDK 10.2 library?

Discover my stunts/Qt library template https://github.com/blackberry/Cascades-Community-Samples/tree/master/Cascades-Library-Template.

It should have everything you need.

Tags: BlackBerry Developers

Similar Questions

  • When you call a function in a shared library, are copied locally settings?

    I have a shared library with a function which the header is:

    void __cdecl nextevent (double entry [], int32_t len);

    When it is called it sends the values in [entry] to the input control:

    This vi is compiled into a DLL that uses the header above.

    Now, my question is: which of these operations is good:

    1. the input control is a reference to the entry in array [], no value is copied.

    2. the values of the Input [] array are copied into the input control, the local copy is used by the vi, then the values of the local copy is deleted/trimmed.

    It seems reasonable that 1 is good, but I can't be sure, and I see no way to check.

    For this particular case, option 2 is valid. The reason is that the tables of LabVIEW are not just pointers to a memory location but the handles. And there is no legal way to create valid LabVIEW handles of a runtime C allocated memory pointer. If LabVIEW transforms the table pointer entering a handle which is basically nothing else that allocate the handle with a sufficient size to contain all the data in the table and then copy the data from the table pointer in this handle. After the call, the handle is properly released.

  • to access the pots through the class-path to the manifest of a shared library.

    I have a large number of pots that are used by the J2EE applications and stand-alone (client) applications.

    I like to keep only one copy pots on the drive (for example, in a myLibraries/lib directory).

    Is there a way I can create a shared library with the Class-Path entry in a manifest that points to the jar files in the myLibraries/lib directory? (If Yes, which? the ear of shared library manifest, the manifest of a pot of "module" in the ear of shared library or the manifest of a pot within the APP-INF/lib?)

    Otherwise, it seems that I have to include copies of these pots in the EAR of my shared library application.

    Thanks in advance
    Mike

    Mike,

    I guess that it may be possible to refer to the pots where they are already using a manifest, but this isn't how I saw. If you look at weblogic.jar, it's META-INF/manfiest.mf uses references to other module pots. However, you're talking as if you want to do something more absolute path. Why not consider the following which is more standard...

    To use a pot as a shared library or optional package, study it:
    http://download.Oracle.com/docs/CD/E14571_01/Web.1111/e13706/libraries.htm#i1070930

    Basically, make sure that the jars you want to be a shared library have a manifest file which specifies the extension name, spec, and version impl.

    For example. Let's say you have myExtension.jar - inside there should be a META-INF/MANIFEST. File MF that looks like this:
    Name of the extension: myExtension
    Specification-Version: 2.0
    Implementation-Version: 9.0.0

    Deploy this jar in a WLS library.

    Second, depending on which classloader you want to access in the container, make a reference to the optional package. For example, in the EAR that you want to access this pot, change META-INF/MANIFEST the EAR. MF so that it looks like this:
    List of extensions: myExtension
    myExtension-Extension-name: myExtension
    myExtension-Specification-Version: 2.9
    myExtension-application-Version: 9.0.0

    You can also reference the style jar libraries in weblogic application. The EAR like this XML:

    ...

    myExtension

    ...

    Note that the library-ref above referring to a jar approach does not work for applications packaged as WAR files and editing weblogic.xml, you must use the obvious approach for the web module archive jar base shared libraries reference.

  • How to deploy taskflow with ADFBC as a shared library?

    Dear all,

    I'm deploying my taskflow as a shared library in WLS and I wanted to extend the webcenter spaces using this
    taskflow.

    Use case:
    My problem is this, my components ADFBC a taskflow. When I try to add this as library-ref in the weblogic.xml,
    I can't see this taskflow when I go to the catalogue of resources change-> add-> add library-> Taskflows

    I can't see my taskflow.

    To validate my case:
    I created a very simple taskflow who does not ADFBC, simply the JSF UI components and I could see this taskflow.
    I continue then add to my content in a page.

    Is there something specific I should do with my taskflow who has configured ADFBC?

    Thank you

    Basically, you will need to follow the steps of 52.3 of official documentation: http://docs.oracle.com/cd/E21764_01/webcenter.1111/e10148/jpsdg_wcsres.htm#BCFDFHHH

    Basically the steps are:

    -Deploy your Jar library tasks flow ADF as Shared Lib in WebLogic (don't forget set etc. etc. of META-INF...)
    -With the "DesignWebCenterSpaces" project, enter your weblogic.xml a Ref library to your sharing-lib and configure the config.properties for deployment.

    Kind regards.

    Daniel

  • How to create a shared library of Qt and use it on App without a head?

    Hi all

    I'm experimenting with some waterfalls headless basic application development, and I just hit another problem of blocking.

    I want to create a Qt library with some shared code between the head and user interface elements.

    That's what I did:

    1. created a new application without head the wizard project
    2. created a new library shared by using the wizard project. Adds a simple C++ (Qt not) class
    3. Set up the two parts of the Headless App to use the shared library ("Library in the workspace project" option from the "Add library...) (' Assistant).   Everything compiles and works very well so far.
    4. Now, I want to use the shared library Qt. I choose 'Library of the Standard BlackBerry platform' and ' platform > Qt Core "from the «add library...» "Wizard. Now, I had this error on the shared library project: C:\dev\bbndk\host_10_2_0_15\win32\x86\usr\bin\ntoarm-ld: could not find lQtCore.

    How to create a shared library of Qt and use it on App without a head?

    In fact, I would also use other NDK libraries on library shared as lbbdata and libbbdevice.

    I expect that workers would deal with all the problems for me. As an improvement, I suggest you add the selection screen platform library of the Wizard "Add library...". «the wizard «Shared Library Project»

    There is a model of library project

    https://github.com/BlackBerry/Cascades-community-samples/tree/master/Cascades-library-template

    Unfortunately, the library create Assistant isn't really useful #t

    There is also a great series on using headless headless library and user interface:

    http://devBlog.BlackBerry.com/2014/02/a-flexible-architecture-for-enterprise-mobile-applications-par...

  • How to share the library with multiple users?

    I have a Mac Pro 2008.  I have four internal hard drives.  One of them is an SSD that is my boot drive.  I have another internal drive that houses my music and movies (2 TB).

    I have four different connections - mine (admin), my wife, my son, my daughter.

    How can I share music on (2 TB) library with other users?  I read to the music folder (shared) - however since the 2 TB is not a boot disc, there is no shared folder.

    You try to share an iTunes library, or the drive contains just music files.

    Other users can see the drive, or simply don't have access to the records.

  • How can I share my library with all my devices

    How can I share my library with all my devices?

    In the article to share your iTunes library on your home - network Support Apple its pretty simple from what I've read, just make sure you have sharing options enabled in iTunes on your computer.

    Just make sure that you are signed in the same Apple ID on all your devices and turn on sharing House on each of them as well and make sure that you are connected to the same network, trying to share the library.

  • shared library issues

    Hello

    I have a DLL to my amp and a help file and a header file, but when I try to import the shared library, it has all the functions... Now, I have some functions to a third party, but when I try to:

    getinstancelist-> opendevice-> getsignalformat->-> device nearby stopdevice

    Often, my entire LabVIEW program stops and gives an error. I wish I could do all the functions with the wizard, so that I can be shure that all is well done...

    In the room attached of the SDK, DLL and header files + getinstancelist, opendevice, getsignalformat, stopdevice, near the VI device

    Best regards

    Thijs Boeree

    Found!

    I only 'open' the device in my VI and then tried to 'stop' it (but it has not been started...) Resulting accidents!

    Best regards

    Thijs

  • tables as input for the shared library function

    I played with the call of LV VI using matlab.

    So I built a simple VI which returns an integer as input and multiply it by 10, I then put in a shared library and named it MATLAB - well.

    Now, I tried to do the same thing with a table - I want to send a picture to the VI and multiplied it by 10, but when I build the .h file, it seems that the function expects get table of entry AND exit of table as inputs.

    so, how I can build a shared library VI who gets an array (of a constant size if this is important) and multiply it by 10?

    Thank you!

    A function in a DLL can only return a scalar value, not a table, no matter what languages are used. To return an array, instead calling it allocates the array pass a reference to the DLL and then after the function called the referenced table table contains the new data. This is why there are two parameters - the input array (actually a pointer to it) and a pointer (reference) to the output array. You must change your code in MATLAB, there is nothing you can do about it in LabVIEW. EDIT: Also note that it allows to re-use of the input as an output table, optionally passing a reference only to the table of entry and then by changing that. You can do it in LabVIEW by configuring the setting table as input and output.

  • Get a precise timing in a C++ shared library in VxWorks

    Hello world

    I am developing a shared library for VxWorks for my compactRio access a «no massive strorage» usb device

    I work with gcc (see develop shared libraries for the cRIO-901 x and other targets of VxWorks for more details).

    The usb part works fine, but I now have to obtain a precise timing in one c++ shared library functions. I tried the functions clockLib (e.g. clock_gettime () - see page 8 of the http://www-ad.fnal.gov/controls/micro_p/manuals/vxworks_application_api_reference_6.6.pdf for more details), but they seem to have a resolution of 1 ms, which is not enough for me.

    There is a clock source faster on the cRio (at least 1 Mhz, one used for timed loops) but I do not know if such a source could be used in a shared library. If so, anyone knows what are the functions of call?

    Thank you very much

    Martin

    OK, I thought about it.  These functions are exported as C functions, so you should use extern 'C' instead of extern just by itself, as I did originally.  Once I did, I was able to compile the following code in its own. File AND it works fine:

    #include
    extern 'C' unsigned long niTimestamp32();

    extern 'C' Sub TimeTest()
    {
    unsigned long ts = niTimestamp32();
    printf ("niTimestamp32 () = 0x%08X\n", ts ");
    }

    Good luck and let me know if you have any problems and more.

  • Unable to load the shared library LVASPT_WA.*

    Hello

    I have a hope that easy to fix the error: I want to use the function "WA Detrend' to the signal processing tool advanced in a real-time application running on a cRio 9030. When I try to run the VI I get the following error:

    ...

    Deployment NI_AdvSigProcWA.lvlib:WA decimation Filter.vi

    NI_AdvSigProcWA.lvlib:WA decimation Filter.vi loaded with errors on the target and was closed.
    LabVIEW: Unable to load the shared library LVASPT_WA.*ptDecimationFilterH:C. make sure that the library is present on the target of RT. Either MAX allows you to install software from OR or FTP to transfer custom RT target libraries.

    ...

    I reinstalled signals Advanced processing toolkit and linked things 'add new software' MAX, but the error persists.

    A picture of what the system looks like to the MAX is attached.

    Also, I Fund this post:

    http://forums.NI.com/T5/LabVIEW/problem-error-deploying-item-on-RT/m-p/3201345/highlight/true#M92822...

    could someone tell me what he means by "Please check the installation of the custom software all mode '?

    Can you telll me what I am doing wrong?

    Thank you very much in advance!

    I ran your situation in R & D, and the problem seems to be as a result of Advanced Signal Processing Toolkit is not not compatible on the x 64 under Linux RT OS in the 9030.  The product page could be clearer on this gap.  I am currently a web application to get this fixed!

    Best,

    David

  • Call to a shared library a VI on a target NI Linux RT (cRIO 9068)

    Hi, I wrote a very small shared library (.so) with Eclipse (toolchain 2014), which essentially serves as a wrapper for more complex, but I am having problems with the call go to in LabVIEW RT on a target Linux RT - specifically, the cRIO 9068. First: the library was copied in/usr/lib and ldconfig has been correctly implemented. More important yet, I have also written a C program (using Eclipse as well) that calls the single function currently implemented in the shared library: this works perfectly, both in Eclipse and you connecting directly on the cRIO with a Putty terminal. So I guess the shared library itself is ok and can be called from code/external programs. Now, dating back to LabVIEW (2014 here btw). Here's where things get difficult, I guess. Initially, I had the symptoms listed here--> http://forums.ni.com/t5/LabVIEW/How-to-create-a-c-shared-library-so-for-linux-real-time-for/td-p/302... who prevented me from actually run any code on the target of RT. Then I changed the call library function node: various tutorials suggest to put name_of_library.* in the path text box or the name of library, but unfortunately it doesn't seem to work, so I had to put the name and the extension too. But it still produces the error below ("the name of the function is not found" etc.) So I check the box 'specify path on diagram' and add/usr/lib as a parameter to the node library function call: now the VI can work and is actually transferred to the target of the RT... but the cluster of output error returns error 7, which is a kind of "File not found" error. However, I believe that this error message is misleading: indeed, if I try to debug remotely this library shared under Eclipse, I am actually able to pause it. and when I press the Pause button on the debugger, the goal of RT VI pauses, then continues as soon as I press the Resume button, I'm stuck... I tried searching forums and Google as well, but I have not yet found a solution. Any ideas on what's going on? Moreover, I can add more details if needed.

    Problem solved, it was a bad configuration of the node library function call which prevented the actual library (.so) to be called.

  • myRIO can't find my shared library .so

    Hi all

    I have developed a shared .so library to run on a device myRIO. I moved my shared library for the path/usr/lib of the myRIO. When I run the .VI I get this error:

    Deployment RT.viRT.vi loaded with errors on the target and was closed.
    LabVIEW: Unable to load the shared library libsolve.so:solve:C. make sure that the library is present on the target of RT. Either MAX allows you to install software from OR or FTP to transfer custom RT target libraries.

    Any idea? I reinstalled the software on the myRIO but I still have this error (I comproved if the shared library is on the right track with filezilla and Eclipse).

    Thanks in advance

    Well lets try a little more detailed explanation:

    Firstly the soname parameter is a parameter of time to compile/link in the project of the shared library. I don't have a computer with a handy Eclipse installation but it's somewhere in the additional indicators in probably the settings of the linker where to a shared library named libfoo.so.1.3.6 add something like:

    -Wl,-soname,libfoo.so.1
    

    You would then copy the shared library resulting on the linux system.

    cp libfoo.* /usr/local/lib
    

    After that, you must do a few extra things:

    (1) change the access rights for the file, otherwise ldconfig may not recognize it as an executable file and simply ignore it:

  • shared library problem MathScript

    I have a shared library of labview created in labview 8.2.1.  This labview dll contains a three functions, having to turn a number of mathscript embeded nodes inside of them.  The reason for their compilation in a shared library dll is because I want to call this dll of labview 7.0.  I have a test program of work created in labview 8.2.1 and labview 7.0.

    The problem I had is that these executables both run ok on my machine development, but when I move them to another machine with only the installed runtimes (7.0 and 8.2.1) labview dll function calls fail to do anything.  No errors appear, so it is very difficult to find where the problem occurs.    I have two different dll called in the example program.  The first dll just manages the file access and has not all the mathscript in bits, but the second, which is the one that I'm really interested in, has the mathscript node.  The memory usage in looking, I see it's the appeal of the file access dll but do not do the mathscript one.

    I have installed an evaluation version of labview 8.2.1 on this laptop with only the runtime, run the program and it works fine.  I think there must be something not in the dll but I don't see anything in the options to add something.  I have the mathscript check box selected in the build option.

    I know there are a number of functions that do not work with just running, but I'm not all there that use my program.

    Does anyone have advice?

    OK, I found the solution to my problem.  It was a problem with the version of the runtime that I used.  Labview CDs development is only a partial performance and include all of the files to run applications full (time to install it on his own).  Go to the website of national instruments, there is a period of standard edition which includes everything you need.  Download and install this version seem to have solved the problem.

  • import the shared library function name change

    Hello

    I used 'Import Shared Library' to create a lvlib, but he changed function name, for example to Z2onj() on(), so created VI does not work.

    It has this error:

    Call library function node "libname.": Z2onj: function not found in the library

    Details:

    The name of the function specified for this node is not found in the library. Click the node to call a library function and select Configure, and then choose the name to function properly.

    How can I solve?

    Thank you.

    Hi Salvo,

    you need to create again the lvlib with the new name.

    Kind regards.

Maybe you are looking for

  • About the data of the ComboBox

    HI everyone, I am using COMBOBOX to select which lamp on, but I want to do only once, if I try again the same LAMP Labview will display an error message, is it possible? Thank you

  • Virus attack/infected system detected Norton AntiVirus.

    I got a message from my Norton Antivirus program as follows:"System infected: TidServ activity 2."  Computer attack: Io4undreyk.com (93.114.40.221, 443). The attack was a result of the \DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\SVCHOST. EXE. "Source ad

  • How can I check readyboost works?

    I have a device(4GB) USB installed and value - dedicated to readyboost, through properties. How can I know if it is actually used or monitor this use? I'm curious because I don't really see an improvement.

  • Download driver driver page for HP LaserJet Pro M201n hp support does not

    Met the error after downloading printer driver for HP LaserJet Pro M201n for Windows 7 on the official support of the HP page: the requested URL /pub/softlib/software12/COL55789/bi-134296-2/LJ_Pro_M201-M202_Full_Solution_14101-a.exe was not found on

  • Not authentic Windows cannot run Validator or Windows Update

    I recently put an SSD in my computer and I had to do a system restore once because Windows Update was not working. Diagnostic report (1.9.0027.0):-----------------------------------------Validation of Windows data--> Validation code: 0x8004FE21Code o