Nvcc fatal: Unknown option 'Wl,-E'

Hi, I am connecting Nvidia Jetson TX2 with a Basler camera. My image processing algorithm runs on GPU (using Cuda 9.0). I use Qt. I get an error:

Nvcc fatal: Unknow option 'Wl,-E'

Detail:

13:00:46: Starting: "/usr/bin/make" 
/usr/local/cuda-9.0//bin/nvcc --compiler-options -fno-strict-aliasing --use_fast_math --ptxas-options=-v -I"/home/nvidia/opencv/include" -I"/opt/pylon5/include" -I"/opt/pylon5/include/GenApi" -I"/usr/local/cuda-9.0//include" `pkg-config opencv --cflags --libs` -L/opt/pylon5/lib64 -Wl,-E -lpylonbase -lpylonutility -lGenApi_gcc_v3_0_Basler_pylon_v5_0 -lGCBase_gcc_v3_0_Basler_pylon_v5_0 -L /usr/local/cuda-9.0//lib -lcuda -lcudart -lm -lcublas --machine 64 -arch=sm_62 --compile -cudart static -DWIN64 -D_MBCS -Xcompiler -Xcompiler "-Wl,-rpath,libs/x86_64" -c -O3 -o testprocess_cuda.o testprocess.cu
Makefile:1048: recipe for target 'testprocess_cuda.o' failed
nvcc fatal   : Unknown option 'Wl,-E'
make: *** [testprocess_cuda.o] Error 1
13:00:47: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project ttest (kit: JetsonTX2)
When executing step "Make"
13:00:47: Elapsed time: 00:00.

This is my .pro file:

INCLUDEPATH += /home/nvidia/opencv/include
LIBS += `pkg-config opencv --cflags --libs`

QMAKE_LFLAGS +=$(shell /opt/pylon5/bin/pylon-config --libs-rpath)
LIBS +=$(shell /opt/pylon5/bin/pylon-config --libs)

#=================================================================================
CUDA_SOURCES += \
    testprocess.cu
CUDA_SDK = /usr/local/cuda-9.0/
CUDA_DIR = /usr/local/cuda-9.0/

SYSTEM_NAME = ubuntu
SYSTEM_TYPE = 64
CUDA_ARCH = sm_62       
NVCC_OPTIONS = --compiler-options -fno-strict-aliasing --use_fast_math --ptxas-options=-v

INCLUDEPATH += $$CUDA_DIR/include
QMAKE_LIBDIR += $$CUDA_DIR/lib64
CUDA_OBJECTS_DIR = ./
CUDA_LIBS = -L $$CUDA_DIR/lib -lcuda -lcudart -lm -lcublas  #-fopenacc
CUDA_INC = $$join(INCLUDEPATH,'" -I"','-I"','"')
LIBS += $$CUDA_LIBS

    cuda.input = CUDA_SOURCES
    cuda.output = ${QMAKE_FILE_BASE}_cuda.o
    cuda.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS $$LIBS\
             --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH \
            --compile -cudart static -DWIN64 -D_MBCS -Xcompiler \#"Wl,-E\"\#-rpath,libs/x86_64\" \
            -c -O3 -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda.dependency_type = TYPE_C
    cuda.depend_commands = $$CUDA_DIR/bin/ncc -M $$CUDA_INC $$NVCC_OPTIONS ${QMAKE_FILE_NAME}
    QMAKE_EXTRA_COMPILERS += cuda

To connect with the Basler camera, I use a pylon5 SDK. In the “pylon_config” file in: /opt/pylon5/bin/, it has:

MAJOR=5
MINOR=0
SUBMINOR=12
BUILD=11829
TAG=

DIR=`dirname $0`
PYLON_ROOT=`cd $DIR/.. && pwd`

CFLAGS_I="-I$PYLON_ROOT/include"
CFLAGS_EXTRA=

LIBDIR="$PYLON_ROOT/lib64"
LIBS_L="-L$LIBDIR"
LIBS_EXTRA="-Wl,-E"
PYLONC_LIBS_EXTRA=
LIBS_l="-lpylonbase -lpylonutility -lGenApi_gcc_v3_0_Basler_pylon_v5_0 -lGCBase_gcc_v3_0_Basler_pylon_v5_0"
PYLONC_LIBS_l="-lpylonc"
LIBS_RPATH="-Wl,--enable-new-dtags -Wl,-rpath,$LIBDIR"

# for second level library dependencies at build time
LIBS_RPATH_LINK=" -Wl,-rpath-link,@$LIBDIR"

If I run my code with another camera. It’s ok. Or, I connect to the camera without Cuda. It also run well.

I don’t know how to solve it. Could anyone please help me? Thank you.

Hi,

You can feed a gcc compiling option with -Xcompiler.

For example:

nvcc tmp.cu -Xcompiler \"-Wl,-E\" -o output

Thanks.