Помогите пожалуйста откомпилить программу

Модератор: Модераторы разделов

Ответить
barmaley99
Сообщения: 43

Помогите пожалуйста откомпилить программу

Сообщение barmaley99 »

Всем добра!
Помогите пожалуйста откомпилить программу, ситуация такова что в новых проприетарных драйверах под графические карты отсутствует очень важная библиотека AMD ADL, что вместо нее для замены предложили АМДшники не ясно, библиотека не критична но важна - программы работающие с графикой работают и без нее но без нее они немогут управлять многими важными параметрами граф.карт - частотой вращения вентиляторов, частотами напряжениями и т.д.
Данная библиотека выложена на сайте АМД в исходниках (Зайти туда с недавних пор можно только через VPN или Tor, наверно Роскомнадзор постарался)
https://developer.amd.com/display-library-adl-sdk/
Скачиваю последнюю 10-ую версию, распаковываю, в папке ADLUTIL лежат сами исходники,
В файле Linux build instructions.txt инструкция по компиляции:

Код: Выделить всё

makefile is for building in Linux environment.
Run “make” to create executable file adlutil
Run “make clean” to remove adlutil ( equivalent with “rm adlutil”)


Without the makefile, the easiest way to build this is to run the following command:

gcc main.c –o adlutil –DLINUX –ldl –I ../include/

-ldl (all lower cases), -I (capital i)
Результаты команды make:

Shell

make: *** No targets specified and no makefile found. Stop.
Результаты команды gcc main.c -o adlutil.sln -DLINUX -ldl -I /home/user/ADL_SDK/include

Shell

In file included from ../include/adl_sdk.h:19:0,
from main.c:15:
../include/adl_structures.h:1757:2: error: unknown type name ‘wchar_t’
wchar_t strPathName[ADL_MAX_PATH];
^
../include/adl_structures.h:1759:2: error: unknown type name ‘wchar_t’
wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
^
../include/adl_structures.h:1761:2: error: unknown type name ‘wchar_t’
wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
^
../include/adl_structures.h:1763:2: error: unknown type name ‘wchar_t’
wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
^
../include/adl_structures.h:1775:5: error: unknown type name ‘wchar_t’
wchar_t strPathName[ADL_MAX_PATH];
^
../include/adl_structures.h:1777:5: error: unknown type name ‘wchar_t’
wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
^
../include/adl_structures.h:1779:5: error: unknown type name ‘wchar_t’
wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
^
../include/adl_structures.h:1781:5: error: unknown type name ‘wchar_t’
wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
^
../include/adl_structures.h:2554:13: error: unknown type name ‘bool’
bool qualityDetectionEnabled;
^
../include/adl_structures.h:2567:13: error: unknown type name ‘bool’
bool linkProtectionEnabled; // Read-only
^
main.c: In function ‘GetValue’:
main.c:814:17: warning: format ‘%d’ expects argument of type ‘int *’, but argument 4 has type ‘int’ [-Wformat=]
fscanf_s( file,"%32s %d\n", sField, 33, iValue);
^
main.c:814:17: warning: too many arguments for format [-Wformat-extra-args]
main.c: In function ‘GetHex’:
main.c:827:17: warning: format ‘%X’ expects argument of type ‘unsigned int *’, but argument 4 has type ‘int’ [-Wformat=]
fscanf_s( file,"%32s %X\n", sField, 33, iValue);
^
main.c:827:17: warning: too many arguments for format [-Wformat-extra-args]
main.c: In function ‘GetFloat’:
main.c:840:17: warning: format ‘%f’ expects argument of type ‘float *’, but argument 4 has type ‘int’ [-Wformat=]
fscanf_s( file,"%32s %f\n", sField, 33, fValue);
^
main.c:840:17: warning: too many arguments for format [-Wformat-extra-args]
Может поможет кто? Все необходимое для компиляции у меня установлено, чтото недумаю что АМД допустили где либо ошибки, но тем не менее чтото не так

И вот это место из библиотеки adl_structures.h на которой происходит ошибка

Код: Выделить всё

/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an application
///
/// This structure is used to store basic information of an application
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
typedef struct _ADLApplicationDataX2
{
   /// Path Name
   wchar_t strPathName[ADL_MAX_PATH];
   /// File Name
   wchar_t strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
   /// Creation timestamp
   wchar_t strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
   /// Version
   wchar_t strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
}ADLApplicationDataX2;
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Помогите пожалуйста откомпилить программу

Сообщение Bizdelnick »

barmaley99 писал(а):
23.04.2018 11:46
недумаю что АМД допустили где либо ошибки
Напрасно.

Код: Выделить всё

--- include/adl_structures.h.orig	2018-04-23 13:49:55.215938606 +0300
+++ include/adl_structures.h	2018-04-23 13:48:58.925056932 +0300
@@ -14,6 +14,8 @@
 #ifndef ADL_STRUCTURES_H_
 #define ADL_STRUCTURES_H_
 
+#include <stdbool.h>
+#include <wchar.h>
 #include "adl_defines.h"
 
 /////////////////////////////////////////////////////////////////////////////////////////////
--- /dev/null	2018-04-02 12:36:06.974220031 +0300
+++ adlutil/Makefile	2018-04-23 15:44:18.535418021 +0300
@@ -0,0 +1,11 @@
+CPPFLAGS = -DLINUX -I../include
+LDLIBS = -ldl
+
+objs = main.o
+prog = adlutil
+
+$(prog): $(objs)
+	$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
+
+clean:
+	$(RM) $(prog) $(objs)
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить