簡體   English   中英

使用Magick ++和openMPI編譯C ++代碼

[英]Compile c++ code using Magick++ and openMPI

我正在嘗試使用Magick++庫編譯我的C ++代碼,以使用openMPI以分布式方式處理圖像,並且在嘗試編譯時會出現一些錯誤。

這是我的代碼:

#include "mpi.h"
#include <stdio.h>
#include <iostream>
#include <Magick++.h>
using namespace std; 
using namespace Magick; 

int main(int argc, char **argv){

int rank, numtask;

InitializeMagick(*argv);

Image image;
try { 
    // Read a file into image object 
    image.read( "test_image.jpg" );
    image.type( GrayscaleType );
    Blob blob; 
    image.magick( "JPEG" ); // Set JPEG output format 
    image.write( &blob );

} 
catch( Exception &error_ ){ 
    cout << "Caught exception: " << error_.what() << endl; 
    return 1; 
 } 

//Now in the "distributed enviroment" I just print an hello world to test it. 
MPI_Init(&argc,&argv);

MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &numtask);

cout<<"HelloWorld\n";

MPI_Finalize();

}

這是我在外殼上鍵入的命令

mpiCC openmpi_project.cc -o openmpi_project

這是外殼的輸出

openmpi_project.cc:(.text+0x1d):對“ Magick :: InitializeMagick(char const *)”的未定義引用

openmpi_project.cc:(.text+0x29):對“ Magick :: Image :: Image()”的未定義引用

openmpi_project.cc:(.text+0x5d):對“ Magick :: Image :: read(std :: string const&)”的未定義引用

openmpi_project.cc:(.text+0x86):對“ Magick :: Image :: type(MagickCore :: ImageType)”的未定義引用

openmpi_project.cc:(.text+0x92):運行定義的對“ Magick :: Blob :: Blob()”的引用

openmpi_project.cc:(.text+0xc6):對“ Magick :: Image :: magick(std :: string const&)”的未定義引用

openmpi_project.cc:(.text+0xf1):對“ Magick :: Image :: write(Magick :: Blob *)”的未定義引用

openmpi_project.cc:(.text+0xfd):對“ Magick :: Blob ::〜Blob()”的未定義引用

openmpi_project.cc:(.text+0x158):對“ Magick :: Image ::〜Image()”的未定義引用

openmpi_project.cc:(.text+0x1d3):對“ Magick :: Blob ::〜Blob()”的未定義引用

openmpi_project.cc:(.text+0x261):對“ Magick :: Image ::〜Image()”的未定義引用

/tmp/ccqFzUdy.o:(.gcc_except_table+0x58):對“ Magick :: Exception的typeinfo”的未定義引用

ImageMagick附帶配置實用程序。 對於Magick ++,此實用程序是Magick++-config 請參閱API文檔用法”小節。

LDFLAGS=$(Magick++-config --ldflags)
CXXFLAGS=$(Magick++-config --cxxflags)
$(CC) $CXXFLAGS openmpi_project.cc $LDFLAGS -o openmpi_project

跳轉到MPI 編譯/鏈接文檔 ,並將Magick ++的其他標志集成到mpiCC

LDFLAGS=$(Magick++-config --ldflags)
CXXFLAGS=$(Magick++-config --cxxflags)
mpiCC --with-wrapper-cxxflags=$CXXFLAGS openmpi_project.cc \
      --with-wrapper-ldflags=$LDFLAGS -o openmpi_project

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM