emscripten-core / emscripten-core/emscripten
Build c++ script with opencv issue
- Lingua principale
- C++
- Stelle
- 27.6k
- Fork
- 3.6k
- Merge medio
- 1g 14h
- PR unite (30g)
- 125
Descrizione
hi there
this is my cpp script :
`
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
Mat src;
extern "C" {
int version(uint8_t *buf, uint8_t *target, int bufLen)
{
uint8_t* newBuf = target;
int i;
float ratio[30] = {0};
float num = 29;
float step = 1/num;
for(int i=0; i<30;++i){
ratio[i] = i*step;
}
float **array;
array=new float*[121680];// 180*26*26
for(int i=0;i<121680;i++)
{
array[i]=new float[3];
memset(array[i],0,3*sizeof(float));
}
for(int i=0; i<30; i++){
array[i*676 + 675][0] = 1 - ratio[i];
array[i*676 + 675][1] = ratio[i];
array[i*676 + 675][2] = 0;
}
for(int i=30; i<60; i++){
array[i*676 + 675][0] = 0;
array[i*676 + 675][1] = 1 - ratio[i-30];
array[i*676 + 675][2] = ratio[i-30];
}
for(int i=60; i<90; i++){
array[i*676 + 675][0] = 0;
array[i*676 + 675][1] = ratio[i-60];
array[i*676 + 675][2] = 1 - ratio[i-60];
}
for(int i=90; i<120; i++){
array[i*676 + 675][0] = 0;
array[i*676 + 675][1] = 1 - ratio[i-90];
array[i*676 + 675][2] = ratio[i-90];
}
for(int i=120; i<150; i++){
array[i*676 + 675][0] = 0;
array[i*676 + 675][1] = ratio[i-120];
array[i*676 + 675][2] = 1 - ratio[i-120];
}
for(int i=150; i<180; i++){
array[i*676 + 675][0] = ratio[i-150];
array[i*676 + 675][1] = 1 - ratio[i-150];
array[i*676 + 675][2] = 0;
}
for(int i=24;i>=0;i--){
for(int j=0; j<180; j++){
array[676*j + 26*i + 25][0] = (array[j*676 + 675][0])*i/25.0;
array[676*j + 26*i + 25][1] = (array[j*676 + 675][1])*i/25.0 + (1 - i/25.0);
array[676*j + 26*i + 25][2] = (array[j*676 + 675][2])*i/25.0;
}
}
for(int i=24;i>=0;i--){
for(int j=25; j>=0; j--){
for(int k=0; k<180; k++){
array[k*676 + j*26 + i][0] = (array[k*676 + j*26 + 25][0])*i/25.0;
array[k*676 + j*26 + i][1] = (array[k*676 + j*26 + 25][1])*i/25.0;
array[k*676 + j*26 + i][2] = (array[k*676 + j*26 + 25][2])*i/25.0 +(1 - i/25.0);
}
}
}
vector vec_data(&buf[0], &buf[0] + bufLen);
src = imdecode(vec_data,1);
// ...
delete [] array;
return 1;
}
}
`
the problem is, it will give error like
`error: undefined symbol: _ZN2cv8fastFreeEPv
error: undefined symbol: _ZN2cv8imdecodeERKNS_11_InputArrayEi
Error: Aborting compilation due to previous errors
`
any clue how to link the missing library?
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
La issue fornisce solo uno snippet C++ inline e errori del linker; non indica alcun comando di build, file del progetto, build di OpenCV o punto di ingresso dei test. Inizia riproducendo il passaggio di linking di Emscripten e verificando come vengono forniti i moduli OpenCV. Il lavoro è completato quando i simboli mancanti vengono risolti e il codice sorgente mostrato viene compilato correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp, opencv, wasm
- Ambito
- build-system, computer-vision
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100