Static C Tic library

Are their instructions for generating a static library (.lib) version of the Tic library.

I am working with the Tic 36v4 controller.

The serial interface for the USB port does not seem to work.

I used MSYS2 to build the solfware. This results in a dynamic library that does not work with MSVC, aside from that I would actually prefer a static link library. I see instructions for building the dynamic library but I don’t see any instructions for building a static link library. My ideal would be to use the Tic library for control.

Thanks much

-glenn

Hello, Glenn.

Thank you for your interest in the Tic.

When building the Tic software or libusbp, you can use the -DBUILD_SHARED_LIBS=false option when you run CMake to make it build static libraries instead of shared libraries. The header files of the Tic library and libusbp need to know that you are using static libraries, so you would need to define preprocessor macros named LIBUSBP_STATIC and TIC_STATIC when you use the libraries in your project. (The values of those macros do not matter, they just need to be defined.)

If you want to use the Tic library from an MSVC program, you should probably make sure that you compile the Tic software with MSVC instead of GCC. We do not have instructions for how to do that. If you are familiar with compiling C code into a static library with Visual Studio, then you might try doing that with the Tic and libusbp code. We can help you fix any specific errors or warnings that you get.

You can also use CMake to generate Visual Studio projects, but I have not tried it to see how well it works. To do that, you can either remove the -G"MSYS Makefiles" argument to CMake or change it to something like -G"Visual Studio 16 2019". You can run cmake --help to see the list of supported generators.

By the way, it might be easier to just invoke ticcmd from your program instead of building the Tic software yourself and learning how to use the C API.

The Tic’s USB interface does not provide a virtual serial port.

Please let me know if you have any further questions.

–David

David,

Thanks for the input. I was able to recomple both libusbp and the tic library under MSVC 2019 directly.

Though about using the ticcmd, but it is a complicated motor control where we need to watch several motors and make changes after they reach locations. Direct programming will probably be more efficien

-glenn

Hi Glenn,

I am trying to accomplish exactly the same thing. I spent a few minutes trying to get things building in MSVC, but I was wondering if you could share the project files you created? I am trying to avoid updating to 2019 if possible (am using 2017).

Alternatively if David has any suggestions I’d gladly try them. I have it building just fine in MSYS2 but obviously it’s a lot of different work to get that imported into a visual studio project as well.

Thanks!

Brian

Brian,

No problem. Do you want just the project files or I can zip the entire directory and upload it? I assume you want bot ticlib and libusbp. They work great.

For future, if someone wants these let me know and I will figure out how to share them on the site here.

-glenn

Hi Gregg,

I think both compiled DLLs and the project would be very valuable so please share (there are a few other posts inquiring about the same thing). I can put them up on github as well if you like.

Thanks again,

Brian

I will send them to you by email. This tread limits to 5 MB for upload.

Hi Glenn, I am trying to compile the Tic software, but not sure how to do it. It will be of immense help if you could share the project files and compiled dlls please.

Thank you,
Sriram.

I did not compile as a .dll, but rather as a .lib that gets linked into your code. I will try and upload a copy of my TicLib directory. This has all the settings for Microsoft Visual C++ Studio.

TicLib.zip (2.4 MB)

TicLib directory minus the .vs part, which is too large to upload here.

This has worked well for me for a number of projects.

Thanks a lot Glenn for sharing the code. Really appreciate it. Does it depend on libusbp files? I get errors about libusbp.h. If yes, do you know what other files I need to include to build this project please?

Thanks again.

I have managed to build the code and it is all working with our project. Thanks a lot for the help and sharing the code.

Cool. Glad it worked for you.

-glenn