Hello,
I have a C project using National Instrument library (through visa.lib/dll and visa.h).
I am implementing unit test on it (googletest).
My unit test is testing a function that calls a NI visa function (viClose()).
It seems the way i include the external library is not correct.
- I create the external library dependency with by adding my visa.lib through the add_library and set_target_properties
- Then i add this library to the one created by the current file
I am trying to add a reference of this external library in my CMakeLists but it fails “error LNK2019: unresolved external symbol viClose referenced…”
HEre is an extract of my CMake:
set (Headers file.h )
set (Sources file.c )
create dependency with NI external library
add_library(nivisa STATIC IMPORTED)
set_target_properties(nivisa PROPERTIES
IMPORTED_LOCATION “C:\Program Files (x86)\National Instruments\Shared\CVI\ExtLib\msvc\visa.lib”
INTERFACE_INCLUDE_DIRECTORIES “C:\Program Files (x86)\National Instruments\Shared\CVI\Include”
)
#build the library
add_library(${PROJECT_NAME}Lib STATIC ${Sources} ${Headers})
#inlcude external lib
target_include_directories(${PROJECT_NAME}Lib
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
“C:\Program Files (x86)\National Instruments\Shared\CVI\ExtLib\msvc”)
target_link_libraries(${PROJECT_NAME}Lib “C:\Program Files (x86)\National Instruments\Shared\CVI\ExtLib\msvc\visa.lib”)