<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; api Guardant Windows и MINGW]]></title>
		<link>https://forum.guardant.ru/topic/161/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/161" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «api Guardant Windows и MINGW».]]></description>
		<lastBuildDate>Thu, 15 Sep 2022 17:05:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/4791/#p4791</link>
			<description><![CDATA[<div class="quotebox"><cite>Тимофей Ершов пишет:</cite><blockquote><p>OBJECTS += $$PWD/grdlic/grdlic_msvc.obj</p></blockquote></div><p>спасибо, вот это заработало, но лучше использовать LIBS, а не OBJECTS, иначе эти объектные файлы будут удалены при clean</p><p>попробовал также подключить библиотеку grdapi - тоже работает<br /></p><div class="codebox"><pre><code>LIBS += $$PWD/GrdFWMC.obj $$PWD/grdlic_msvc.obj</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (iluha)]]></author>
			<pubDate>Thu, 15 Sep 2022 17:05:20 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/4791/#p4791</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/4788/#p4788</link>
			<description><![CDATA[<div class="quotebox"><cite>iluha пишет:</cite><blockquote><p>такая же беда со сборкой примера для SLK (demo.c + grdlic)</p></blockquote></div><p>Добрый день.</p><p>Разработчики протестировали работу MinGW, и вот их комментарии<br />x86 Mingw + Qt, Qt взят <a href="https://download.qt.io/new_archive/qt/5.4/5.4.1/qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe">отсюда</a>.<br />Пример работает и с grdlic.dll, и с объектным файлом grdlic_msvc.obj.</p><p>чтобы прилинковать объектный файл:</p><p>#win32: LIBS += $$-LPWD/grdlic/ -lgrdlic<br />#LIBS += -L$$PWD/grdlic/ -lgrdlic</p><p>win32: OBJECTS += $$PWD/grdlic/grdlic_msvc.obj</p><p>Собранный с помощью Mingw-64 при динамической линковке с grdlic.dll пример действительно падает. Проблема в библиотеке импорта grdlic.lib.</p><p>Варианты решения проблемы:</p><p>1) использовать статическую линковку с объектным файлом grdlic_msvc.obj;</p><p>2) загружать библиотеку grdlic.dll через LoadLibrary, а функции через GetProcAddress;</p><p>3) сгенерировать свою библиотеку импорта для mingw-64:</p><p>d:\EXPERIMENT\mingw_test\Qt\mingw-w64\mingw64\bin&gt;dlltool -k --output-lib grdlic.lib --input-def grdlicx86_64.def --dllname grdlic.dll</p>]]></description>
			<author><![CDATA[null@example.com (Тимофей Ершов)]]></author>
			<pubDate>Wed, 14 Sep 2022 10:23:40 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/4788/#p4788</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/4784/#p4784</link>
			<description><![CDATA[<p>такая же беда со сборкой примера для SLK (demo.c + grdlic)</p>]]></description>
			<author><![CDATA[null@example.com (iluha)]]></author>
			<pubDate>Tue, 13 Sep 2022 10:03:22 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/4784/#p4784</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/4783/#p4783</link>
			<description><![CDATA[<p>Добрый день! Пытаюсь скомпилировать тестовый проект из Qt Creator с использованием MinGW:</p><div class="codebox"><pre><code>...
#include &quot;grdapi.h&quot;
...
int main(int argc, char** argv)
{
    uint32_t dwRemoteMode = GrdFMR_Local;   // Operation mode flags (GrdFMR_Remote)
    int nRet;
    printf(&quot;Initialize this copy of GrdAPI: &quot;);
    nRet = GrdStartup(dwRemoteMode);
}</code></pre></div><p>файл .pro:</p><div class="codebox"><pre><code>QT        = # проект не использует Qt
TARGET      = guardant_test
TEMPLATE  = app
CONFIG   += c++11 console static
QMAKE_CXXFLAGS += -static
QMAKE_LFLAGS += -static
SOURCES  = guardant_test.c
HEADERS  = grdapi.h
LIBS += -L$$PWD/./ -lgrdapi -lpthread</code></pre></div><p>на выходе GCC:</p><div class="codebox"><pre><code>g++ -static -Wl,-subsystem,console -mthreads -o debug/guardant_test.exe debug/guardant_test.o  -LD:/work/qnx/workspace/_qlib/extra/dongle -lgrdapi -lpthread   
debug/guardant_test.o: In function `main&#039;:
...guardant_test.c:48: undefined reference to `GrdStartup@4&#039;</code></pre></div><p>-lgrdapi подразумевает использование libgrdapi.a ? пробовал -lGrdAPI32 - аналогично</p>]]></description>
			<author><![CDATA[null@example.com (iluha)]]></author>
			<pubDate>Tue, 13 Sep 2022 05:29:28 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/4783/#p4783</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/3622/#p3622</link>
			<description><![CDATA[<p>Попробовал последний MinGW 5.3 (из пакета с Qt SDK 5.8) и всё заработало из коробки.</p><p>Директория проекта:<br /></p><div class="codebox"><pre><code>$ ls -R
.:
CMakeLists.txt  Include  grddongle.cpp  grddongle.h  lib32  lib64

./Include:
GcaAPIdll.h         GrdGcExeGenDll.h  grdapi.h  grderror.h       nvkeyerr.h
GrdEccPairGenDll.h  gcaapi.h          grddrv.h  grdspactivate.h  nvskey32.h

./lib32:
GcaAPIdll.lib  GrdAPI32.lib  grddrv.lib  grdspactivate.lib

./lib64:
GrdAPI64.lib  grddrv.lib  grdspactivate.lib</code></pre></div><p>Пример CMakeLists.txt:</p><div class="codebox"><pre><code>cmake_minimum_required(VERSION 3.8)

project(&quot;guardant&quot; LANGUAGES CXX)

set(HEADERS)
set(SOURCES)

list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/grddongle.h&quot;)
list(APPEND SOURCES &quot;${PROJECT_SOURCE_DIR}/grddongle.cpp&quot;)

list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/gcaapi.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/GcaAPIdll.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/grdapi.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/grddrv.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/GrdEccPairGenDll.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/grderror.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/GrdGcExeGenDll.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/grdspactivate.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/nvkeyerr.h&quot;)
list(APPEND HEADERS &quot;${PROJECT_SOURCE_DIR}/Include/nvskey32.h&quot;)

add_library(${PROJECT_NAME} ${OS_BUNDLE} ${SOURCES} ${HEADERS})

target_include_directories(${PROJECT_NAME} PUBLIC &quot;.&quot; &quot;Include&quot;)

if(WIN32)
    if (CMAKE_SIZEOF_VOID_P MATCHES 4)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib32/GcaAPIdll.lib&quot;)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib32/GrdAPI32.lib&quot;)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib32/grddrv.lib&quot;)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib32/grdspactivate.lib&quot;)
    elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib64/GrdAPI64.lib&quot;)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib64/grddrv.lib&quot;)
        target_link_libraries(${PROJECT_NAME} INTERFACE &quot;${PROJECT_SOURCE_DIR}/lib64/grdspactivate.lib&quot;)
    else()
        message(FATAL_ERROR &quot;Unsupported bitness&quot;)
    endif()
else()
    message(FATAL_ERROR &quot;Unsupported target platform&quot;)
endif()

set_target_properties(${PROJECT_NAME} PROPERTIES
    CXX_STANDARD 17
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS YES
    )

target_compile_options(${PROJECT_NAME} PRIVATE -W)
if(&quot;${CMAKE_CXX_COMPILER_ID}&quot; MATCHES &quot;Clang&quot;)
    target_compile_options(${PROJECT_NAME} PRIVATE -Weverything)
elseif (&quot;${CMAKE_CXX_COMPILER_ID}&quot; STREQUAL &quot;GNU&quot;)
    target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra)
else()
    message(FATAL_ERROR &quot;Compiler ${CMAKE_CXX_COMPILER_ID} currently is not supported&quot;)
endif()

set(CMAKE_CXX_FLAGS_RELEASE &quot;${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG=1 -march=native&quot;)
set(CMAKE_CXX_FLAGS_DEBUG &quot;${CMAKE_CXX_FLAGS_DEBUG} -ggdb -fno-inline -DDEBUG=1 -march=x86-64 -mtune=generic&quot;)
if(&quot;${CMAKE_CXX_COMPILER_ID}&quot; MATCHES &quot;Clang&quot;)
    set(CMAKE_CXX_FLAGS_DEBUG &quot;${CMAKE_CXX_FLAGS_DEBUG} -O0 -D_GLIBCXX_DEBUG -D_LIBCPP_DEBUG2=1&quot;)
elseif(&quot;${CMAKE_CXX_COMPILER_ID}&quot; MATCHES &quot;GNU&quot;)
    set(CMAKE_CXX_FLAGS_DEBUG &quot;${CMAKE_CXX_FLAGS_DEBUG} -Og -D_GLIBCXX_DEBUG&quot;)
endif()
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO &quot;${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer -DNDEBUG=1 -march=native&quot;)
if(&quot;${CMAKE_CXX_COMPILER_ID}&quot; MATCHES &quot;Clang&quot;)
    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO &quot;${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -gline-tables-only&quot;)
elseif(&quot;${CMAKE_CXX_COMPILER_ID}&quot; MATCHES &quot;GNU&quot;)
    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO &quot;${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Og -ggdb&quot;)
endif()
set(CMAKE_CXX_FLAGS_MINSIZEREL &quot;${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG=1 -march=native&quot;)</code></pre></div><p>Перечисление ключей из `c:\Program Files (x86)\Guardant\SDK7\Samples\General Guardant API\C++\src\demo.cpp` работает как надо.</p>]]></description>
			<author><![CDATA[null@example.com (tomilov)]]></author>
			<pubDate>Thu, 11 May 2017 08:32:05 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3622/#p3622</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/719/#p719</link>
			<description><![CDATA[<div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><p>А где можно посмотреть полный список платформ, которые поддерживаются ключами?&nbsp; В частности я вижу в 6 версии апи библиотеки формата gcc для api dll, но не вижу ни одного примера где они используются. Хотелось бы получить рабочий пример.</p></blockquote></div><p>Актуальный список проверенных сред разработки можно найти в файле &quot;guardant api samples.html&quot; (по умолчанию находится в папке: &quot;%Program Files%\Guardant\Guardant 6\%Public Code%\Doc&quot;). Примеры для компиляции при помощи &quot;gcc&quot; есть для ОС Linux и находятся в папке - &quot;%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x86(или x64)\Linux\General Guardant API\gcc&quot;. Также в папке - &quot;%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\ARM&quot;, есть примеры загружаемого кода.<br /></p><div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><p>Комплект разработчика и ключи были куплены официально, непонятна Ваша позиция по поводу &quot;не гарантируется&quot;, поясните пожалуйста этот момент</p></blockquote></div><p>Проверить, на полную совместимость с нашим API, все возможное множество разнообразных версий сред разработок и компиляторов нам не представляется возможным. Тестируются, как правило, наиболее популярные и распространенные среды, для которых и составляются соответствующие примеры и обучающие материалы.<br /></p><div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><p>От нашей организации требуется составить некую заявку или официальное письмо, с тем чтобы Вы таки проверили работу ключей в данном окружении (MINGW)?.</p></blockquote></div><p>Мы проведем тестирование для данной среды разработки при первой возможности.</p>]]></description>
			<author><![CDATA[null@example.com (Антон Тихиенко)]]></author>
			<pubDate>Thu, 15 Mar 2012 12:10:32 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/719/#p719</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/718/#p718</link>
			<description><![CDATA[<div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Теоретически MinGW должен работать с объектными файлами &#039;MS-COFF&#039;, но у нас подобных испытаний не проводилось, и нет никаких гарантий их корректной совместной работы.</p></blockquote></div><p> А где можно посмотреть полный список платформ, которые поддерживаются ключами?&nbsp; В частности я вижу в 6 версии апи библиотеки формата gcc для api dll, но не вижу ни одного примера где они используются. Хотелось бы получить рабочий пример. </p><p>PS Комплект разработчика и ключи были куплены официально, непонятна Ваша позиция по поводу &quot;не гарантируется&quot;, поясните пожалуйста этот момент? От нашей организации требуется составить некую заявку или официальное письмо, с тем чтобы Вы таки проверили работу ключей в данном окружении (MINGW)? Дело в том, что приложение разработано полностью в QtSDK, и его требуется защитить с использованием именно api, в частности функций задаваемых пользователем (ключи Code ). Подскажите что именно требуется чтобы скрестить апи гвардант и QtSDK/MINGW для win32?</p>]]></description>
			<author><![CDATA[null@example.com (Neekeetos)]]></author>
			<pubDate>Wed, 14 Mar 2012 20:19:33 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/718/#p718</guid>
		</item>
		<item>
			<title><![CDATA[Re: api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/717/#p717</link>
			<description><![CDATA[<div class="quotebox"><cite>Neekeetos пишет:</cite><blockquote><p>Добрый день!<br />Подскажите пожалуйста как именно можно использовать библиотеку гвардант для windows в среде MINGW? Я нашел библиотеки лишь для делфи и вижуал си, в то время как в mingw компилятор gnu c (gcc).</p></blockquote></div><p>Здравствуйте.</p><p>Теоретически MinGW должен работать с объектными файлами &#039;MS-COFF&#039;, но у нас подобных испытаний не проводилось, и нет никаких гарантий их корректной совместной работы.</p><p>Вы можете самостоятельно попробовать собрать свое приложение или наш тестовый пример с использованием объектных файлов Guardant API (по умолчанию находятся в папке &#039;\Lib&#039; установленного SDK Guardant).</p>]]></description>
			<author><![CDATA[null@example.com (Антон Тихиенко)]]></author>
			<pubDate>Tue, 13 Mar 2012 11:12:20 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/717/#p717</guid>
		</item>
		<item>
			<title><![CDATA[api Guardant Windows и MINGW]]></title>
			<link>https://forum.guardant.ru/post/715/#p715</link>
			<description><![CDATA[<p>Добрый день!</p><p>Подскажите пожалуйста как именно можно использовать библиотеку гвардант для windows в среде MINGW? Я нашел библиотеки лишь для делфи и вижуал си, в то время как в mingw компилятор gnu c (gcc).</p>]]></description>
			<author><![CDATA[null@example.com (Neekeetos)]]></author>
			<pubDate>Mon, 12 Mar 2012 11:00:39 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/715/#p715</guid>
		</item>
	</channel>
</rss>
