C++ g++;不';我不认识这个选项-wl
我正在使用gcc版本4.7.2开发Ubuntu12.10 我正在尝试生成以下生成文件:C++ g++;不';我不认识这个选项-wl,c++,ubuntu,gcc,makefile,C++,Ubuntu,Gcc,Makefile,我正在使用gcc版本4.7.2开发Ubuntu12.10 我正在尝试生成以下生成文件: CC = g++ CCFLAGS = -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp LINKFLAGS = -shared -Wl -fopenmp -lgomp INPUT = im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp TARGET = libcpputil.
CC = g++
CCFLAGS = -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp
LINKFLAGS = -shared -Wl -fopenmp -lgomp
INPUT = im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
TARGET = libcpputil.so
# If we are going to use MKL, we include additional flags
MKL_FLAGS = -D DECAF_USE_MKL
MKL_LINK_FLAGS = -lmkl_rt
all: $(INPUT)
$(CC) -c $(CCFLAGS) $(INPUT)
$(CC) $(LINKFLAGS) -o $(TARGET) *.o
all_mkl: $(INPUT)
$(CC) -c $(CCFLAGS) $(MKL_FLAGS) $(INPUT)
$(CC) $(LINKFLAGS) $(MKL_LINK_FLAGS) -o $(TARGET) *.o
speedtest_lrn: speedtest_lrn.cpp local_response_normalization.cpp
$(CC) $(CCFLAGS) -lgomp -o speedtest_lrn speedtest_lrn.cpp local_response_normalization.cpp
clean:
rm *.so
rm *.o
但是不知怎么的,g++没有识别选项-wl。下面是我得到的错误:
make -C layers/cpp/
make[1]: Entering directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
g++ -c -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
g++ -shared -Wl -fopenmp -lgomp -o libcpputil.so *.o
g++: error: unrecognized command line option ‘-Wl’
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
make: *** [all] Error 2
Failed to build the C libraries; exiting
编辑:当我尝试删除“-wl”时,我得到:
当我在Ubuntu12.04和GCC4.7.7上试用它时,它不知怎么地起了作用
有人能解释一下是什么问题吗?我该如何解决
谢谢,
Gil.来自手册:
-选择权
将选项作为选项传递给链接器。如果选项包含逗号,则在逗号处将其拆分为多个选项。你可以用这个
将参数传递给选项的语法。例如
-Wl,-Map,output.Map将-Map output.Map传递到链接器。当使用GNU链接器时,您也可以使用
-Wl,-Map=output.Map
因此,您错过了-Wl的选项。我不记得将
-Wl
视为选项。它的意思是什么,你为什么要通过它?+1很高兴知道;这是如果有人感兴趣的话。同样地,-Wp,option
用于预处理器,-Wa,option
用于汇编程序。谢谢您的回答。我从下载的软件包中得到了这个makefile。只是删除-Wl是一样的吗?尝试删除它。。。如果它的表现不如预期,请回到这里:)我们会解决它!谢谢,我试图删除它,但它不起作用,请查看对我问题的编辑。嗯,第二个错误与make和gcc无关,它与您尝试运行的软件包附带的setup.py
有关。你的编译成功了。
ubuntu@ubuntu-VirtualBox:~/decaf-release-master$ python setup.py
make -C layers/cpp/
make[1]: Entering directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
g++ -c -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
g++ -shared -fopenmp -lgomp -o libcpputil.so *.o
make[1]: Leaving directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: no commands supplied