Newsgroup: it.comp.os.linux.iniziare
Titolo: Liveview per Pentax KP

Stavo cercando di compilar questa app 
https://api.ricoh/docs/camera-usb-sdk-cpp/quick-start-linux/#run-sample-app
 
per collegare la mia reflex pentax kp tramite usb al pc e ottenere una 
live view e anche il controllo della macchina visto che gphoto2 non la 
supporta, i driver indi sono troppo complicati, pktriggercord non 
funziona per  questo modello. Specifico che il binario di prova presente 
sullo stesso sito funziona, ma voglio modificarlo cambiando il formato 
da 720x480 ad almeno 1084x760, quindi vorrei compilare. Uso Solus , è un 
x64, vado di cmake .. come da istruzioni (la versione di cmake che ho in 
uso è la 3.23.1) e se ne esce con:
 
"
  $ cmake ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
   Compatibility with CMake < 2.8.12 will be removed from a future 
version of
   CMake.
 
   Update the VERSION argument <min> value or use a ...<max> suffix to tell
   CMake that the project does not need compatibility with older versions.
 
 
CMake Error at CMakeLists.txt:21 (message):
   Unsupported architecture:
 
 
-- Configuring incomplete, errors occurred!
See also 
"/home/fabio/Scaricati/ricoh-camera-usb-sdk-cpp-linux-x86-x64-1.1.0(1)/ricoh-camera-usb-sdk-cpp-linux-x86-x64-1.1.0/samples/liveview/build/CMakeFiles/CMakeOutput.log".
 
"
 
Il file di log termina con
"
  collapse obj 
[/usr/lib64/gcc/x86_64-solus-linux/12/../../../../lib64/Scrt1.o] ==> 
[/usr/lib64/Scrt1.o]
   collapse obj 
[/usr/lib64/gcc/x86_64-solus-linux/12/../../../../lib64/crti.o] ==> 
[/usr/lib64/crti.o]
   collapse obj 
[/usr/lib64/gcc/x86_64-solus-linux/12/../../../../lib64/crtn.o] ==> 
[/usr/lib64/crtn.o]
   collapse library dir [/usr/lib64/gcc/x86_64-solus-linux/12] ==> 
[/usr/lib64/gcc/x86_64-solus-linux/12]
   collapse library dir 
[/usr/lib64/gcc/x86_64-solus-linux/12/../../../../lib64] ==> [/usr/lib64]
   collapse library dir [/lib/../lib64] ==> [/lib64]
   collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
   collapse library dir [/usr/lib64/gcc/x86_64-solus-linux/12/../../..] 
==> [/usr/lib64]
   implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
   implicit objs: 
[/usr/lib64/Scrt1.o;/usr/lib64/crti.o;/usr/lib64/gcc/x86_64-solus-linux/12/crtbeginS.o;/usr/lib64/gcc/x86_64-solus-linux/12/crtendS.o;/usr/lib64/crtn.o]
   implicit dirs: [/usr/lib64/gcc/x86_64-solus-linux/12;/usr/lib64;/lib64]
   implicit fwks: []
 
"
 
C'è modo di risolvere secondo voi?
 
Inoltre c'è modo di ridirigere il video in qualche modo su vlc o altro 
come fosse una webcam?

Ntavo poi che anche il binario ha un warning:
Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1016,wx 
containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx 
containers,compatible with 2.8).


 
]zac[
 
Si direbbe gestore delle impostazioni di compilazione vecchio.
 
E le impostazioni delle compilazione non sembrano in grado di compilare 
per x86_64 ma solo per 386/586/686 (32bit).
 
Probabilmente codice, programmi, ecc., troppo vecchi (e quindi 
inutilizzabili).


Peccato, grazie.

On 07/08/22 17:35, Giuseppe Della Bianca wrote:

Olè, ci sono riuscito a compilare e a passare da 720x480 a 1024x768! Per 
quanto riguarda il compilare ho cambiato il file CMakeList.txt 
sostanzialmente togliendo delle parti. Da così:
 
"
cmake_minimum_required(VERSION 2.8.2)
 
project(liveview_sample CXX C)
 
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall")
 
find_package(wxWidgets COMPONENTS core base REQUIRED)
 
include_directories(
   ../../include)
 
include(${wxWidgets_USE_FILE})
 
if("${CMAKE_LIBRARY_ARCHITECTURE}" MATCHES "^(x86_64|amd64)")
   set(architecture_path "x64")
elseif("${CMAKE_LIBRARY_ARCHITECTURE}" MATCHES "^i[3-6]86")
   set(architecture_path "x86")
elseif("${CMAKE_LIBRARY_ARCHITECTURE}" MATCHES "^arm-linux-gnueabihf")
   set(architecture_path "armv7l")
else()
   message(FATAL_ERROR "Unsupported architecture: 
${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
message(STATUS "${architecture_path}")
 
link_directories(
   ${PROJECT_SOURCE_DIR}/../../lib/${architecture_path})
 
add_executable(liveview liveview.cpp)
 
set(CMAKE_SKIP_RPATH TRUE)
 
target_link_libraries(liveview
   ${wxWidgets_LIBRARIES}
   RicohCameraSDKCpp
   mtp
   pthread)
"
 
a così:
 
"cmake_minimum_required(VERSION 2.8.2)
 
project(liveview_sample CXX C)
 
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall")
 
find_package(wxWidgets COMPONENTS core base REQUIRED)
 
include_directories(
   ../../include)
 
include(${wxWidgets_USE_FILE})
 
if("${CMAKE_LIBRARY_ARCHITECTURE}" MATCHES "^(x86_64|amd64)")
   set(architecture_path "x64")
 
   message(FATAL_ERROR "Unsupported architecture: 
${CMAKE_LIBRARY_ARCHITECTURE}")
endif()
message(STATUS "${x64}")
 
link_directories(
   ${PROJECT_SOURCE_DIR}/../../lib/x64)
 
add_executable(liveview liveview.cpp)
 
set(CMAKE_SKIP_RPATH TRUE)
 
target_link_libraries(liveview
   ${wxWidgets_LIBRARIES}
   RicohCameraSDKCpp
   mtp
   pthread)
"
Probabilmente lo davano per scontato anche se non era scritto da nessuna 
parte... Funziona alla grande ora, bene.

 parte... Funziona alla grande ora, bene.
 
Hai risolto quindi bene e problema chiuso.
 
Comunque dà l'impressione di un programma abbandonato.

 Comunque dà l'impressione di un programma abbandonato.
 
Si penso sia così, a un certo punto hanno rilasciato questi "pezzi di 
codice" credo infatti vecchi, più che altro per  consentire a chi 
volesse e lo sapesse fare (non io) dei programmi per interfacciarsi con 
queste reflex, che comunque è una gran cosa visto che prima gphoto, 
pktriggercord, indie andavano navigavano al buio...anche se devo dire 
che da loro rilascio mi risulta li abbiano usati solo per i driver indi 
(
https://indilib.org/forum/development/6298-new-pentax-driver-testing.html)che
 
però non sono disponibili su Solus e l'idea di compilarmeli da solo e 
fare i pacchetti è abbastanza scoraggiante per la complessità e perché 
poi non so se alla fine funzionano. Al momento però sono l'unico 
programma da me testato (ho provato anche gphoto e pktriggercord) che 
comunica e comanda la macchina via USB .

 comunica e comanda la macchina via USB .
]zac[
 
Ci sono un buon numero di progetti interessanti ma sostanzialmente portati 
avanti per il solo interesse personale dello sviluppatore, anche se magari 
utilizzati da un discreto numero di persone.
 
Quando l'interesse dello sviluppatore cala o cessa, il progetto diventa 
solo un peso (sviluppare cose usate da altri, è un peso notevole) e non 
sensato (senza un ritorno di qualche tipo, poi).