我正在构建这个应用程序,它在其他 Linux 机器上编译,在带有 VMware 虚拟机(Linux guest )的 Windows 上。它有一个 makefile 和 make 完成。然后我运行 acgmake,这应该会生成运行所需的所有文件。我收到此错误:
Build executable Debian64_gcc4.6_dbg/libsrc_CadModel.so -> Debian64_gcc4.6_dbg/cadmodel
/home///intel/mkl/10.2.2.025/lib/em64t/libiomp5.so: undefined reference to `pthread_atfork'
我发现我需要为 gcc(或其他)指定 -pthread
标志。这是怎么做到的? ACGMakefile
包含:(编辑:CadModel/ACGmakefile)
#== SYSTEM PART -- DON'T TOUCH ==============================================
include $(ACGMAKE)/Config
#==============================================================================
CXX_CFLAGS += -DQT_THREAD_SUPPORT
ifeq ($(findstring g++,$(CXX_COMP)),g++)
CXX_CFLAGS += -Wno-write-strings -Wno-ignored-qualifiers
CXX_LDFLAGS += -Xlinker --no-warn-search-mismatch
endif
SUBDIRS = $(call find-subdirs)
PACKAGES := ftgl opencascade qt4 glut opengl x11 math mkl
PROJ_LIBS = OpenMesh/Core
MODULES := moc4 rcc cxxlib cxx
all: build
info:
@echo "Using compiler $(filter g++, $(CXX_COMP))"
# @echo "CFLAGS = $(CXX_LDFLAGS)"
#== SYSTEM PART -- DON'T TOUCH ==============================================
include $(ACGMAKE)/Rules
#==============================================================================
run: $(cxx-exes)
./$(cxx-exes)
-lpthread
或 -pthread
是链接器所需要的。
如果库未在 LD_LIBRARY_PATH
中设置,您可能还想告诉链接器在哪里可以找到库,使用 -L/path/to/lib
选项.
我是一名优秀的程序员,十分优秀!